美文网首页Git
git 删除最后一次commit

git 删除最后一次commit

作者: yanlong107 | 来源:发表于2019-10-22 15:14 被阅读0次

提交代码代码后, 需求发送了变更,刚刚提交没多久的commit,实现已经是不正常的,想删除这最后一次提交,应该如果处理呢?

先说结论

撤销远程的commit, 可以分为两个部分
1,第一个部分和前面的操作一样,使用git reset --hard 目标commit 回滚到指定的。
2,使用 git push origin -f branch 强制覆盖远程仓库。(-f 有风险,请谨慎使用,master 上不到万不得已千万别用)

操作实践

  1. 先查看当前的提交状态 (本地有两次提交,没有push到远程仓库中)
 $ git log -4
commit 44aa1321cc3875d5eb9a41e565ec62114c2dd293 (HEAD -> branch_test)
Author: 大龙
Date:   Tue Oct 22 14:37:28 2019 +0800

    提交测试4

commit c87c2cf74ca66116a32bf9f641fa3b8ad40736a5
Author: 大龙
Date:   Tue Oct 22 14:37:11 2019 +0800

    提交测试3

commit dfa01a2d554913ea0e703c19c30cd01ab18fca5d (origin/branch_test)   
Author: 大龙
Date:   Tue Oct 22 13:24:57 2019 +0800

    提交测试2

commit 5aa83e58721548f477af3bb23cb547494559dca4
Author: 大龙
Date:   Tue Oct 22 13:14:23 2019 +0800

    提交测试1
  1. 撤销本地最后一次commit (也可以撤销最后的多个提交)
git reset --hard c87c2cf74ca66116a32bf9f641fa3b8ad40736a5(`目标的SHA1 值`)

或

git reset --hard HEAD^  (`HEAD后面有几个^,就是撤销到往前第几次`)

tips:
c87c2cf74ca66116a32bf9f641fa3b8ad40736a5

  1. 执行后,再查看一些当前的提交状态
 $ git log -3
commit c87c2cf74ca66116a32bf9f641fa3b8ad40736a5
Author: 大龙
Date:   Tue Oct 22 14:37:11 2019 +0800

    提交测试3

commit dfa01a2d554913ea0e703c19c30cd01ab18fca5d (origin/branch_test)   
Author: 大龙
Date:   Tue Oct 22 13:24:57 2019 +0800

    提交测试2

commit 5aa83e58721548f477af3bb23cb547494559dca4
Author: 大龙
Date:   Tue Oct 22 13:14:23 2019 +0800

    提交测试1

可以看到log中最后一个commit已经被撤销了。

4.现在把本地的push提交到远程仓库,然后撤销远程的commit

$ git push origin branch_test 
 $ git log -3 
commit c87c2cf74ca66116a32bf9f641fa3b8ad40736a5 (HEAD -> branch_test, origin/branch_test)
Author: 大龙
Date:   Tue Oct 22 14:37:11 2019 +0800

    提交测试3

commit dfa01a2d554913ea0e703c19c30cd01ab18fca5d
Author: 大龙
Date:   Tue Oct 22 13:24:57 2019 +0800

    提交测试2

commit 5aa83e58721548f477af3bb23cb547494559dca4
Author: 大龙
Date:   Tue Oct 22 13:14:23 2019 +0800

    提交测试1
  1. 撤销远程的最后一次提交
$git reset --hard HEAD^
HEAD is now at dfa01a2 提交测试2
$ git push -f origin branch_test 
Total 0 (delta 0), reused 0 (delta 0)
+ c87c2cf...dfa01a2 branch_test -> branch_test (forced update)
$git log -2
commit dfa01a2d554913ea0e703c19c30cd01ab18fca5d (HEAD -> branch_test, origin/branch_test)
Author: 大龙
Date:   Tue Oct 22 13:24:57 2019 +0800

   提交测试2

commit 5aa83e58721548f477af3bb23cb547494559dca4
Author: 大龙
Date:   Tue Oct 22 13:14:23 2019 +0800

   提交测试1

$ 

可以看到最后一次的commit(提交测试3) 已经不见了。

END!

相关文章

网友评论

    本文标题:git 删除最后一次commit

    本文链接:https://www.haomeiwen.com/subject/yjrqvctx.html