前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git 回滚错误的push

git 回滚错误的push

原创
作者头像
zero000
修改2021-05-25 20:15:59
4.1K0
修改2021-05-25 20:15:59
举报
文章被收录于专栏:程序员菜谱程序员菜谱
code_rollback
code_rollback

一、背景

有时候,工作时会错误地对一些修改进行commit并push到远程,这时候想回滚这部分commit,并且远程分支也同步回滚

二、git 操作

首先,查看需要回滚到哪个commit-id

代码语言:txt
复制
git log

# 如果需要查看详细的改动,可以尝试使用如下命令
git log -p

接着,回退到具体的commmit-id处(注意,reset --hard是不可逆的,详细查看reset --hardreset --soft的区别)

代码语言:txt
复制
# 本地git
git reset --hard <commit-id>

# 特殊情况:如果本地还有没有提交的变更
git stash
git reset --hard <commit-id>
git stash pop

最后,强制使用本地变更覆盖remote ref

代码语言:txt
复制
# remote git 同步
git push --force-with-lease origin <mybranch>

三、实战

需要修复branch my-test-branch

代码语言:txt
复制
$ git branch
* my-test-branch
  master

需要回滚到0d1d7fc32e5a

代码语言:txt
复制
$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date:   Thu Nov 4 18:59:41 2010 -0400

blah blah blah...

commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date:   Thu Nov 4 05:13:39 2010 -0400

more blah blah blah...

commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date:   Thu Nov 4 00:55:06 2010 -0400

And yet more blah blah...

commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date:   Wed Nov 3 23:56:08 2010 -0400

回滚 && 同步

代码语言:txt
复制
git reset --hard 0d1d7fc32e5a947f
git push --force-with-lease origin my-test-branch

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
  • 二、git 操作
  • 三、实战
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档