您的位置:首页 > 其它

Git 版本回退

2015-12-14 16:30 441 查看
原文来自:http://smaij.com/git-%E7%89%88%E6%9C%AC%E5%9B%9E%E9%80%80/

如果我们修改了文件。提交到github 版本库后。发现代码有点错乱了。你想要回到上一个或者上两个版本中去。那么,很幸运,Github 提供有很方便的回滚功能。

我们通过一组实验来明了。

下面我commit 了三个版本。修改一个叫 test.php 的文件。

版本1:version 1.0

第一次修改的时候。
**********************


版本2:version 2.0

第二次修改的时候。
**********************


版本3:version 3.0

第三次修改的时候。
**********************


版本控制系统一个很重要的功能,当然就是管理各个版本间的问题了。Git 也是为了处理这个问题而诞生的,Git 中有一个命令可以查看历史记录。就是 git log 这个命令了。





这个命令显示的是提交的记录,在这里我修改了三次后提交了三次。最近一次是version 3.0 ,最早一次是version 1.0 。

到这里。你首先要知道你现在所处的是那个版本,如何回到那个版本。

在Git 中,使用命令 git reset 来操作进退。参数 HEAD 表示当前的版本,假如你当前已经退回到了version 2.0 版本。那么你使用

git reset --hard HEAD


则会返回version 2.0 的版本ID

2d9a6407f9becba08ce46ae55035e0c7f71da8b1


要回到当前版本的上一个版本去。就是用

git reset --hard HEAD^


在 HEAD^^ 表示退回到两个版本前。有多少个^ 就是退回到多少个版本去,如果不幸要退后25个版本。你也可以

git reset --hard HEAD~25




好,退回来了。突然发现问题原来是最新版一个文件中缺少了一个 ‘;’。此时怎么办。还能回去吗?

能!

在用 git log 看到的版本中。最新的那些版本已经不在了。怎么办?

github 已经意料到我们会疏忽。于是。他帮我们记录了我们的操作……感谢!

使用 git reflog 来查看你的每一次命令操作记录





这就好办了。我要回到version 3.0 去。





好了好了。太好了

总结:
HEAD 指向的是当前的版本ID 。我们也可以使用它来穿梭到上下的版本去。

使用git log 可以看到我们git中的提交、回退、版本ID 等信息

使用git reflog 查看命令历史。使用它来挽救过度回退
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息