查找在所有分支中添加文件的提交

时间:2016-02-22 16:42:18

标签: git

我正在使用git filter-branch在我的存储库中使用以下命令在我的存储库中查找blob:

https://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/

该脚本的输出示例如下所示:

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

但它一无所获。它只会搜索本地分支机构还是会包含远程跟踪分支机构?

1 个答案:

答案 0 :(得分:0)

您可以使用git log -- <filename>和一些开关执行此操作。

  • --all将访问所有分支机构的所有提交。

  • --topo-order将按地形顺序执行(即根据他们的关系,而不是他们的日期),保证包含该文件的最后一次提交将是添加它的那个。

  • --reverse将颠倒顺序,因此首先添加文件的提交。

全部放在一起:git log --all --topo-order --reverse -- <filename>。第一次提交将是添加它的提交。

然后,您可以使用各种格式选项,例如--pretty=oneline,并将其传递给head -1以获得一次提交。

注意您无法使用--limit,因为在订购--topo-order--reverse等选项之前会发生这种情况。