当前位置:   article > 正文

git撤销本地commit、撤销本地merge、撤销远程push

git撤销本地commit

git撤销本地提交

写完代码后,我们一般使用下面的命令提交代码

git add .   #添加所有文件
  • 1
git commit -m "代码提交"   #提交代码
  • 1

如果执行完commit后,想撤回commit,该怎么办?

使用下面命令即可撤回:

git reset --soft HEAD^  #撤销最近一次提交
  • 1

这样就成功的撤销了最近一次的commit


本操作仅仅是撤回commit操作,写的代码仍然保留

说一下个人理解:
HEAD^ 的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2

至于这几个参数:

–-mixed 意思是:不删除工作空间改动代码,撤销commit,并且撤销git add .  操作

这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的
  • 1
  • 2
  • 3
–-soft
不删除工作空间改动代码,撤销commit,不撤销git add . 
  • 1
  • 2
--keep
任何本地更改都将丢失,文件将恢复到所选提交的状态,但本地更改将保持不变。
你已经提交了,然后你又在本地更改了,如果你选keep,那么提交的内容会丢失,你提交后又本地修改未提交的内容不会丢失。
  • 1
  • 2
  • 3
–-hard
文件恢复到所选提交状态,任何更改都会丢失。删除工作空间改动代码,撤销commit,撤销git add . 

注意完成这个操作后,就恢复到了上一次的commit状态。
  • 1
  • 2
  • 3
  • 4
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。
  • 1
  • 2
  • 3
  • 4

撤销本地合并(merge)

git merge --abort
  • 1

如何撤销远程提交(push)

第一种方式是使用git reset --hard
git reset --hard   #撤销并舍弃指定的版本号之后的提交记录。使用需要谨慎。
  • 1

示例:

git reset --hard 773b0e55ad81a55d2f964d530443931f25bce9d8
  • 1

然后需要push到远程分支,但是直接git push, 是会报错的,因为本地版本落后于远程,需要强制推送命令

git push -f 
  • 1

然后查看本地和远程分支,可以看到我们的commit提交的那个版本没有了,版本回退到了提交之前的版本

这种强制提交,如果使用的是gitlab, 权限不是maintainer, 提交也会失败,需要找管理员提交。

注意:这种方式会把提交的代码直接舍弃,非常不建议使用!

第二种方式是使用 git revert 命令

这种方法非常适用于提交后报错一直解决不了的,前提是提交前项目可以正常运行
git revert 撤销。但是保留了提交记录。并且他是移除指定的提交。
获取需要回退的版本号,注意这里和上面的不一样,上面的是回退到之前的某一个版本,现在是撤销当前的版本。

  • 1.执行git log 命令 查看已经提交过的commit信息版本号
  • 2.git revert 版本号 ,(例子 git revert 773b0e55ad81a55d2f964d530443931f25bce9d8
  • 3.输入键盘 i 键,进入编辑状态,改一下提交的名称,
  • 4.键盘Esc键,再去输入冒号 ,在输入 wq, 执行一下回车enter键,就ok了
  • 5.然后再git push到远程分支,即可。
    当然了你在第3个步骤的时候也可以不编辑,直接操作下一步就行,i ——> ESC ——> : ——> wq ——> enter ——>push
    这种方式可以只回退某一个版本,并且回退之后,还会保留之前版本的记录。推荐
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/408576
推荐阅读
相关标签
  

闽ICP备14008679号