我最近从SVN转到Git,对一些事情有点困惑。我需要通过调试器运行脚本的以前版本,所以我做了git checkout <以前版本哈希>,并做了我需要做的事情。

现在我想回到最新的版本,但我不知道它的哈希值。当我输入git log时,我看不到它。

我该怎么做呢?此外,是否有一种比输入哈希值更简单的方法来更改版本-例如“返回两个版本”或“转到最近的年代”?


当前回答

对于Git 2.23+(2019年8月),最好的做法是使用Git switch,而不是令人困惑的Git checkout命令。

创建一个基于旧版本的新分支:

git switch -c temp_branch HEAD~2

返回当前主分支:

git switch master

其他回答

当你回到以前的版本,

$ git checkout HEAD~2
Previous HEAD position was 363a8d7... Fixed a bug #32

即使在这种情况下,您也可以使用此命令查看您的特性日志(哈希);

$ git log master --oneline -5
4b5f9c2 Fixed a bug #34
9820632 Fixed a bug #33
...

Master可以用另一个分支名称替换。

然后签出它,你将能够回到功能。

$ git checkout 4b5f9c2
HEAD is now at 4b5f9c2... Fixed a bug #34

Git checkout master应该可以做到这一点。要回到两个版本,你可以说git checkout HEAD~2,但最好基于该时间创建一个临时分支,因此git checkout -b temp_branch HEAD~2

返回最新版本。

git checkout <branch-name> 

例如,git checkout master或git checkout dev

对于Git 2.23+(2019年8月),最好的做法是使用Git switch,而不是令人困惑的Git checkout命令。

创建一个基于旧版本的新分支:

git switch -c temp_branch HEAD~2

返回当前主分支:

git switch master

首先,您可以使用分支名称签出。

我知道有几种方法可以移动HEAD,但是我将把它留给git专家来列举它们。

我只是想建议gitk——所有——当开始使用git时,我发现它非常有用。