如何回到Git的最新版本?

我最近从SVN转移到Git,对于某些东西有些困惑。 我需要通过一个debugging器运行以前版本的脚本,所以我做了git checkout <previous version hash> ,并做了我需要做的事情。

现在我想回到最新版本,但我不知道它的散列。 当我inputgit log ,我没有看到它。

我怎样才能做到这一点? 另外,有没有更容易的方法来改变版本,比input哈希 – 就像“回到两个版本”或“去按时间顺序最近”?

git checkout master应该做的伎俩。 要回两个版本,你可以说像git checkout HEAD~2 git checkout -b temp_branch HEAD~2 ,但更好地创build一个临时分支的基础上,所以git checkout -b temp_branch HEAD~2

当你签出一个特定的提交时,git创build一个分离的分支。 所以,如果你打电话给:

 $ git branch 

你会看到像这样的东西:

 * (detached from 3i4j25) master other_branch 

要回到主分支头,您只需要再次签出您的主分支:

 $ git checkout master 

该命令将自动删除分离的分支。

如果git checkout不起作用,你可能已经修改了分支之间冲突的文件。 为了防止你丢失代码,git需要你处理这些文件。 你有三个select:

  1. 存储你的修改(你可以稍后popup):

     $ git stash 
  2. 放弃重置分离分支的更改:

     $ git reset --hard 
  3. 用以前的修改创build一个新的分支并提交它们:

     $ git checkout -b my_new_branch $ git add my_file.ext $ git commit -m "My cool msg" 

在此之后,您可以返回到您的主分支(最新版本):

 $ git checkout master 

这对我来说(我仍然在主分支):

git reset –hard origin / master

我刚开始深入研究git,所以不确定我是否理解正确,但是我认为OP的问题的正确答案是可以运行git log --all的格式规范: git log --all --pretty=format:'%h: %s %d' 。 这将当前签出的版本标记为(HEAD) ,您可以从列表中抓取下一个版本。

顺便说一句,像这样的一个别名添加到你的.gitconfig格式稍微好一点,你可以运行git hist --all

  hist = log --pretty=format:\"%h %ai | %s%d [%an]\" --graph 

关于相关版本,我发现这篇文章 ,但它只谈旧版本,可能没有什么可以参考较新的版本。

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

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

我只是想build议gitk --all – 所有 – 我发现它非常有用的开始与git。

当你回到以前的版本,

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

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

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

master可以用另一个分店的名字来代替。

然后检查它,你将能够回到function。

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

一个更优雅和简单的解决scheme是使用

 git stash 

它将返回到最重要的本地版本的分支,并保存您的更改藏匿,所以如果你想撤消这个行动做:

 git stash apply 

要返回到最新版本:

 git checkout <branch-name> 

例如, git checkout mastergit checkout dev