12

我想做的是获取具有特定注释的文件版本,获取并使用它,然后将其更改为最新代码。

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

这将返回一个 hash 123456,然后我这样做:

git checkout 123456

并使用旧版本。

现在我想把HEAD后面改成最新的。这是我做不到的。我努力了:

git reset --hard
git clean -f
git pull

有任何想法吗?

4

1 回答 1

30

当您打电话时,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

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

于 2013-06-25T05:27:39.157 回答