Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Git版本回退 #19

Open
hanrenguang opened this issue Nov 12, 2018 · 0 comments
Open

Git版本回退 #19

hanrenguang opened this issue Nov 12, 2018 · 0 comments
Labels

Comments

@hanrenguang
Copy link
Owner

hanrenguang commented Nov 12, 2018

今天提交的几个 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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant