我想要做的是获取带有特定评论的文件版本,使用它,然后将其更改为最新的代码。
git log -g --grep="code submitted version 0.1.2.3"
这将返回一个哈希值123456
,然后我执行:
git checkout 123456
并使用旧版本。
现在我想将 HEAD
改回最新版。但我无法做到这一点。
我已经尝试过:
git reset --hard
git clean -f
git pull
有任何想法吗?
当你执行 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 123456:/txt/file.txt > newfile.txt
将输出导入到newfile.txt
中。 - Micha Wiedenmann