如何在git中将HEAD移动到最新日期?

18

我想要做的是获取带有特定评论的文件版本,使用它,然后将其更改为最新的代码。

git log -g --grep="code submitted version 0.1.2.3"

这将返回一个哈希值123456,然后我执行:

git checkout 123456

并使用旧版本。

现在我想将 HEAD 改回最新版。但我无法做到这一点。 我已经尝试过:

git reset --hard
git clean -f
git pull

有任何想法吗?

1个回答

36

当你执行 git checkout 123456 命令时,你将HEAD从当前所在的提交(很可能是master分支的最新提交)移动到提交 123456。因此,你需要找到一种方法将HEAD移回之前所在的分支,可以使用以下命令实现:

git checkout master

如果您想查看文件的特定修订版本,您可以使用以下两种方式之一:

git show 123456:/txt/file.txt

或者暂时仅检查此文件,使用

git checkout 123456:/txt/file.txt
// use it
git checkout :/txt/file.txt

您尝试的解释:

git reset --hard

撤消当前HEAD的所有更改,但不移动HEAD。重置后,git status 显示一切都是“干净的”。

git clean

从工作树中删除所有未跟踪的文件,同样不会移动HEAD

git pull

获取上游(upstream)的更改并将它们合并。这不是你想要的。


谢谢。非常好的解释。我最好不要使用git show,因为我有一个二进制文件。 "git checkout master" 很有效。我想需要一些时间来适应git :) - max
1
你可以使用 git show 123456:/txt/file.txt > newfile.txt 将输出导入到 newfile.txt 中。 - Micha Wiedenmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接