撤销远程提交-每天三分钟玩转Git (6)

时间:2023-01-03 14:58:16



撤销远程提交-每天三分钟玩转Git (6)


第 6 篇



撤销远程提交


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

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

我们来看看github上的远程仓库。

撤销远程提交-每天三分钟玩转Git (6)

完了完了,真的提交了(我刚刚push的)现在的状态是:

撤销远程提交-每天三分钟玩转Git (6)

提交命令:


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


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

撤销远程提交

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

撤销远程提交-每天三分钟玩转Git (6)

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

  1. 使用​​git status​​查看现在的工作区情况,提示​​Your branch is behind 'origin/master' by 1 commit​​,代表成功表了上一次的提示状态
  2. ​nothing to commit, working tree clean​​代表这次的修改全没了,清理的算是一个彻底。如果还想找回来怎么办,我们还真是有办法让你找回来的,以后的推送救命的后悔药会详细讲述。

这个时候我们的状态是:

撤销远程提交-每天三分钟玩转Git (6)

这个时候我们再把他强制推送到远程:

撤销远程提交-每天三分钟玩转Git (6)

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

撤销远程提交-每天三分钟玩转Git (6)


真的撤消了远程仓库,长舒一口气。

撤销远程提交-每天三分钟玩转Git (6)

就是这么简单!

小结

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

  1. ​git reset --hard head^​​​回滚到上一个​​commit​
  2. ​git push origin master --force​