每天3分钟玩转Git——06 – 撤销远程提交

小熊 玩转Git26,7461字数 875阅读2分55秒阅读模式

06 - 撤销远程提交

每天3分钟玩转Git——06 – 撤销远程提交

要是我们"不小心"把骂老板的话给提交到远程了,马上其他同事都要看到了,要是被发现就全完了,这个时候我们还来得及撤销吗?

创建一个犯罪现场(手抖提交到了远程仓库)

我们来看看github上的远程仓库。
每天3分钟玩转Git——06 – 撤销远程提交
完了完了,真的提交了(我刚刚push的)现在的状态是:
每天3分钟玩转Git——06 – 撤销远程提交
提交命令:

git add -Agit commit -m "[+]骂了我的老板"git push origin master

好了,犯罪现场创建完成!

撤销远程提交

让我们冷静下来,用 撤消当前commit的方法 先撤消本地的commit,这次我们来试试用hard参数来撤消(不确定用hard 还是 soft,可以到上一篇推送中再做确认-> 撤消当前commit的方法

每天3分钟玩转Git——06 – 撤销远程提交

使用git reset --hard head^回滚到上一个commit

  1. 使用git status查看现在的工作区情况,提示Your branch is behind 'origin/master' by 1 commit,代表成功表了上一次的提示状态

  2. nothing to commit, working tree clean代表这次的修改全没了,清理的算是一个彻底。如果还想找回来怎么办,我们还真是有办法让你找回来的,以后的推送救命的后悔药会详细讲述。

这个时候我们的状态是:
每天3分钟玩转Git——06 – 撤销远程提交
这个时候我们再把他强制推送到远程:
每天3分钟玩转Git——06 – 撤销远程提交

  1. git push origin master --force 命令强制提交到远程仓库(注意,如果是在团队合作的情况下,不到迫不得已不要给命令加--force参数)

  2. 让我们看看github

每天3分钟玩转Git——06 – 撤销远程提交
真的撤消了远程仓库,长舒一口气。
每天3分钟玩转Git——06 – 撤销远程提交
就是这么简单!

小结

今天的三分钟我们学会了撤回远程的提交,他的步骤是:

  1. git reset --hard head^回滚到上一个commit

  2. ``git push origin master --force 命令强制提交到远程仓库

当然了,我们也可以用 git reset --soft head^回滚到上一个commit的时候,保存本地代码,然后使用git stash命令把现场代码保存起来,再强制提交,这样就可以保留修改以备后续使用啦!

下回预告:
要是想把文件从暂存区取出来怎么搞呢?下回见

weinxin
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
小熊