Git版本回退

masternan 2019-06-29

原文地址:GitHub

今天提交的几个 commit 感觉组织有点混乱,所以准备回退到之前的 commit 版本。因为用得不多,所以需要记录下回退过程。

回退之前

在开始回退之前,先说几句。回退之后还是有后悔药可吃的,如果你要舍弃的这些 commit 内容很多很重要,也可以先备份一下。最后会有提这个“后悔药”。

查看历史版本

首先我们要做的就是查看你的历史 commit,并获得你想要回退的 commit_id,就是那个很长的一串数字字母组成的 id。在本地 git 命令行中输入:

> git log

然后回输出一堆记录,在每个 commit 后面的那一长串就是 commit_id 了。找到你想要回退到的版本,记住其 id 前几位(最好3位以上)即可,git 会自动去找对应的 commit

本地版本回退

首先我们要做的就是回退我们的本地版本。使用 git reset --hard commit_id 命令即可回退到相应的版本。假设我现在要回退到 commit_idd1681f1... 的版本,执行如下命令即可:

> git reset --hard d1681

现在可以查看下我们的本地仓库,是否文件啥的都回退了。

远程仓库版本回退

如果你已经把前面舍弃的几个 commit 推到了远程仓库,那就接着这一步来,如果没有那可以直接跳过。现在我们的本地仓库已经回退了,如何让远程仓库也回退到和本地仓库一样的版本呢,很简单,执行如下命令即可:

> git push -f

后悔药

稳妥点的方式是开一个备份分支并把当前分支的内容备份进去。当然如果你忘了,然后想要回退的话,还是可以做到的。首先执行如下命令,查看所有(包括舍弃了的)历史版本:

> git reflog

接着找到让你“后悔”的那个版本,然后怎么回退我就不重复了:)

相关推荐

好脑筋不如烂笔头 / 0评论 2016-11-22