in git
我使用gitk
来查看几周前提交的提交的哈希值,并使用该哈希的git checkout将我的源文件恢复到之前的状态。如何获得比git中当前更新的提交更新的哈希?
现在我想去几天后的提交,但是gitk
只显示提交直到当前的提交,而不是后来的提交。
使用git log
也只显示到目前为止。
如何列出以后的提交?
in git
我使用gitk
来查看几周前提交的提交的哈希值,并使用该哈希的git checkout将我的源文件恢复到之前的状态。如何获得比git中当前更新的提交更新的哈希?
现在我想去几天后的提交,但是gitk
只显示提交直到当前的提交,而不是后来的提交。
使用git log
也只显示到目前为止。
如何列出以后的提交?
您想要在任何分支的血统中结账吗?换句话说,您当前的分支中是否包含您正在搜索的提交中所做的更改?
如果是这样,git log --all
将在日志中显示此提交。添加--oneline
和/或--decorate
标志可能使这种输出更容易通过搜索,如果所有你要找的是提交信息:
$ git log --all --oneline --decorate
如果在您的任何分支的祖先犯下的不 (因此不显示log --all
),那么您必须搜索git reflog
。 reflog实质上是您的HEAD
指出的所有提交的历史记录。 HEAD
指向当您在工作目录中检出当前这些文件时进行的提交。
的引用日志的格式是
hash [email protected]{n}: command: message
哪里command
是发出指向HEAD
此特定位置的命令,和message
是与该命令相关联的消息。对于commit
s,message
是您输入的提交消息。
由于这个结构非常好的格式,我们可以使用grep使输出更易于阅读。例如,如果你知道你最近签出的提交问题,您可以运行:
$ git reflog | grep checkout
或仅看通过提交你可以运行:
$ git reflog | grep commit
您还可以使用grep在很多其他方面取决于你正在寻找什么:
$ git reflog | grep "phrase in commit message" --ignore-case
$ git reflog | grep "individual\|words\|in\|message" --ignore-case
您可以使用git reflog
来查看您的HEAD指针所访问的所有提交的哈希,即您在工作目录中指向的所有提交。
如果您无法使用git log
获得提交,这意味着您正在查找的提交不是您当前提交的提交的祖先。如果您无法在reflog中找到提交,可以找到一个基于它(直接或间接)的提交。如果找到它,请检查它,并且现在应该列出您提交的提交内容git log
。
可以使用
git log --all --oneline --graph --decorate
可视化你的Git树。你现在处于分离状态;回到你以前的地方;您需要使用:
git checkout <branch-name>
其中<branch-name>
是您正在研究的分支。
只要结账到头然后回去。 – jonrsharpe