菜单

git还原代码

2019年07月15日 - linux

如果你的仓库是自己在用(不影响别人),那么你可以使用

git reset --hard <target_commit_id>

 

来恢复到指定的提交,再用

git push -f

 

来强制更新远程的分支指针。为了保证万一需要找回历史提交,我们可以先打一个 tag 来备份。

 

如果你的仓库是多人在协作,那么你这么操作会使用别人本地的代码库混乱,所以只能建一个新的提交,这个新的提交中把想取消的提交都 revert 掉,那么具体应该如何做呢?方法如下:

首先,和刚刚一样,用

git reset --hard 23801b2

将代码切换到目标提交的 id。接下来,用

git reset --soft origin/source 命令(source 分支)

,将当前代码切换回最新的提交。

执行完上面两步后,你的仓库还是最新的提交,但是工作区变成了历史的提交内容,这个时候用 git add 和 git commit 即可。

该方法需要保证 reset 的时候没有别人做新的提交,如果有的话,会一并把别人的提交也撤销了。所以还是挺危险的,慎用。

发表评论

电子邮件地址不会被公开。 必填项已用*标注