前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git 删除最后一次commitgit

git 删除最后一次commitgit

作者头像
艳龙
发布2021-12-16 17:28:45
1.3K0
发布2021-12-16 17:28:45
举报
文章被收录于专栏:yanlongli_艳龙

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

先说结论

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

操作实践

  1. 先查看当前的提交状态 (本地有两次提交,没有push到远程仓库中)
代码语言:javascript
复制
 $ 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 (也可以撤销最后的多个提交)
代码语言:javascript
复制
git reset --hard c87c2cf74ca66116a32bf9f641fa3b8ad40736a5(`目标的SHA1 值`)

或

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

tips: c87c2cf74ca66116a32bf9f641fa3b8ad40736a5

  1. 执行后,再查看一些当前的提交状态
代码语言:javascript
复制
 $ 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

代码语言:javascript
复制
$ 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. 撤销远程的最后一次提交
代码语言:javascript
复制
$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!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/7 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先说结论
  • 操作实践
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档