我正在使用git filter-branch在我的存储库中使用以下命令在我的存储库中查找blob:
该脚本的输出示例如下所示:
15547,5149,22ff59d8d472e4d23e51bb083517282c23f016a3 code/thirdparty/Web.dll
14224,2055,1db8de4c4e237c171712caeeff8affa32925c3a8 code/Dictionaries/ge-GE.tdf
上述SHA用于对象/ blob本身,不引用特定的提交。
请注意,在存储库的最近历史记录中,这些文件已从此存储库中删除(但它们仍在历史记录中)。
有没有找到上面介绍这些文件的确切提交(注意我有很多分支,无法知道它们被引入哪个分支)?
我试过了:
git log --all -- code/Dictionaries/ge-GE.tdf
但它一无所获。它只会搜索本地分支机构还是会包含远程跟踪分支机构?
答案 0 :(得分:0)
您可以使用git log -- <filename>
和一些开关执行此操作。
--all
将访问所有分支机构的所有提交。
--topo-order
将按地形顺序执行(即根据他们的关系,而不是他们的日期),保证包含该文件的最后一次提交将是添加它的那个。
--reverse
将颠倒顺序,因此首先添加文件的提交。
全部放在一起:git log --all --topo-order --reverse -- <filename>
。第一次提交将是添加它的提交。
然后,您可以使用各种格式选项,例如--pretty=oneline
,并将其传递给head -1
以获得一次提交。
注意您无法使用--limit
,因为在订购--topo-order
和--reverse
等选项之前会发生这种情况。