2012-02-28 43 views
0

如何查找已從指定提交更改的文件?有一些文件隨這些提交而改變,並且在HEAD中仍然有這些更改。因此,如果我在一次提交中更改一行,則在另一次提交中更改同一行,該行將不會包含在搜索結果中。查找指定提交中已更改行的文件

例如有文件f1f2並承諾c1c2

提交c1引入了一些改變f1f2

提交c2改變f1以這樣的方式,有從c1左不再變化(它改變至少這是在c1改變每線)。它也以c1保留一些更改(至少有一行更改爲c1未更改)的方式更改f2

搜索應返回文件f2,因爲它包含從搜索到的c1更改。但是,搜索不應返回f1,因爲所有更改都會被覆蓋c2

+0

您可以添加您嘗試使用的命令嗎? – 2012-02-28 16:20:51

+0

git log --name-only?! – 2012-02-28 16:25:21

+0

不明白queston。提供示例。 – 2012-02-28 16:37:43

回答

1

所以你想知道兩個提交之間哪些文件是不同的?使用git diff來比較兩個樹形對象:

git diff --name-only commit1 commit2 
+0

沒有什麼不同,我想查找包含在HEAD指定的提交中更改的行的所有文件。正如我在問題中所描述的那樣,如果更改被另一個提交覆蓋,那麼它們不會被包含在最終結果中。換句話說,在發現的文件上使用blame至少應該在指定的提交之一中顯示至少一行。 – 2012-02-28 17:18:26

+0

@mishanesterenko如果這就是你想要的,使用'git blame'和'grep'來得到你的答案有什麼不對? – Borealid 2012-02-28 17:36:18

+0

@mishanesterenko:你真的嘗試過差異嗎?我無能爲力,但認爲它可以做你想做的事情,即»不顯示被覆蓋/改變的改變「 – knittl 2012-02-28 19:53:20

相關問題