原文地址:
GitHub
今天提交的几个 commit
感觉组织有点混乱,所以准备回退到之前的 commit
版本。因为用得不多,所以需要记录下回退过程。
回退之前
在开始回退之前,先说几句。回退之后还是有后悔药可吃的,如果你要舍弃的这些 commit
内容很多很重要,也可以先备份一下。最后会有提这个“后悔药”。
查看历史版本
首先我们要做的就是查看你的历史 commit
,并获得你想要回退的 commit_id
,就是那个很长的一串数字字母组成的 id
。在本地 git
命令行中输入:
> git log
然后回输出一堆记录,在每个 commit
后面的那一长串就是 commit_id
了。找到你想要回退到的版本,记住其 id
前几位(最好3位以上)即可,git
会自动去找对应的 commit
。
本地版本回退
首先我们要做的就是回退我们的本地版本。使用 git reset --hard commit_id
命令即可回退到相应的版本。假设我现在要回退到 commit_id
为 d1681f1...
的版本,执行如下命令即可:
> git reset --hard d1681
现在可以查看下我们的本地仓库,是否文件啥的都回退了。
远程仓库版本回退
如果你已经把前面舍弃的几个 commit
推到了远程仓库,那就接着这一步来,如果没有那可以直接跳过。现在我们的本地仓库已经回退了,如何让远程仓库也回退到和本地仓库一样的版本呢,很简单,执行如下命令即可:
> git push -f
后悔药
稳妥点的方式是开一个备份分支并把当前分支的内容备份进去。当然如果你忘了,然后想要回退的话,还是可以做到的。首先执行如下命令,查看所有(包括舍弃了的)历史版本:
> git reflog
接着找到让你“后悔”的那个版本,然后怎么回退我就不重复了:)