我有一个git diff输出,其中包含这样的行:index 0056c73..92c6cbd 100644每个文件。我知道它来自哪个存储库,但是不幸的是不知道它针对哪个版本的存储库。
如何找到差异所针对的存储库的提交?
或者,如何找到diff中的映像前哈希对应的每个文件的确切提交?(即,0056c73在上面的示例中,哪个版本的文件具有哈希值)
如果您知道文件的路径,则可以开始显示该路径的所有提交:
git log --all --pretty=format:%H <path>
Run Code Online (Sandbox Code Playgroud)
如果0056c73是该文件的 blob SHA1,则 agit ls-tree将打印所有 SHA1 条目,并且您可以 grep 所查找的条目。
“哪个提交有这个斑点? ” aragaer提出了这样的一句话:
git log --all --pretty=format:%H <path> | xargs -n1 -I% sh -c "git ls-tree % <path> | grep -q <hash> && echo %"
Run Code Online (Sandbox Code Playgroud)
(<hash>用。。。来代替0056c73)
正如我在“哪个提交有这个 blob? ”中提到的,使用 Git 2.16+(2017 年 12 月),您可以使用:
git describegit log --oneline --find-object(=...)| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |