【Git】 取消上一次commit或push

打印 上一主题 下一主题

主题 995|帖子 995|积分 2985

一、取消上一次commit


如果你需要取消上一次的 Git 提交,有几个不同的方法可以实现。此中包括撤消提交、提交到新的分支、使用 Git 回滚等等。
下面介绍三种方法:
方法1:使用 Git reset
使用 Git reset 命令来取消上一次提交:


  1. git reset HEAD~1
复制代码
这会把 HEAD 指针移回上一个提交(HEAD~1),并清除末了一次提交的内容。

  1. git reset HEAD^
复制代码
撤回两次或者n次
  1. git reset HEAD~2
复制代码
方法2:使用 Git revert
使用 Git revert 命令来撤消上一次提交并创建一个新的提交来撤消原来的提交:


  1. git revert HEAD
复制代码
这会创建一个新的提交来撤消提交之前的更改。在命令行中输入该命令后,你需要编辑撤消的提交信息,以便 Git 创建一个新的提交。
方法3:使用 Git checkout
还可以使用 Git checkout 命令来将工作树恢复到上一次提交的状态。这将清除全部未提交的更改,所以请确保你有一个备份:


  1. git checkout HEAD~1
复制代码
这会将工作树恢复到上一次提交的状态,也就是你上一次提交之前的状态。请留意,这里的修改都将被丢弃。
无论你使用的是哪种方法,请确保在撤消提交之前首先备份你的工作。这可以资助你避免在操作过程中意外删除无法恢复的内容。
二、取消上一次push

如果你已经push了代码,并且想要撤回这个commit,可以通过以下步调实现:
git push --force
首先,在使用git push命令时,需要加上--force参数,逼迫覆盖长途仓库上已经存在的commit。命令如下:


  1. git push --force origin <branch_name>
复制代码
此中,<branch_name>表现你要打消的分支名称。
git reflog

如果在本地仓库没有回到该commit的上一个状态,需要使用git reflog命令找到该commit的SHA-1值。命令如下:

  1. git reflog
复制代码
该命令会列出整个Git仓库的提交汗青纪录,包括HEAD指针所指向的提交和已经被废弃的提交。
git reset
找到要回到的某个commit的SHA-1值,然后使用如下命令回到该commit的状态:


  1. git reset --hard <commit_SHA-1>
复制代码
此中,<commit_SHA-1>表现要回到的commit的SHA-1值。
git push --force
然后使用之前的推送死令进行推送,添加--force参数,覆盖长途仓库的汗青提交纪录。命令如下:


  1. git push --force origin <branch_name>
复制代码
提醒:使用git push --force命令大概会导致长途仓库、其他成员的仓库和汗青版本产生不可逆的影响,因此操作时需要审慎。一样平常情况下,在工作流中使用git revert命令回滚某个commit,以包管版本控制的完整性和可维护性。
三、扩展

git log  查察提交日志
commit参数

--mixed

不删除工作空间改动代码,打消 commit,并打消 git add . 操作
 git reset --mixed HEAD^ 效果等同 git reset HEAD^
--soft

不删除工作空间改动代码,打消commit,不打消git add .
--hard

删除工作空间改动代码,打消commit,打消git add .
--amend

修改注释, 进入vim编辑器, 改完:wq即可
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表