我試圖使用git log
來找到何時將特定文件帶入主文件。 (簡化)版本歷史是這樣的:如何讓`git log - filename`向我展示合併提交
* f77cac3 Merge branch 'branch2'
|\
| * da35250 Merge branch 'branch1' into branch2
| |\
| | * 90ab3e3 adding foo on branch1
| * | 42a0367 adding bar in branch2
| |/
* | 853b691 changes to baz on master
* | c7b6c72 baz file on master
|/
* e195580 first commit
我想找到其呈交介紹了文件「富」到主(應該是f77cac3)。然而,運行git log --foo
給出90ab3e3。在更復雜的情況下,如果對branch1和branch2上的foo文件進行了多項更改,則所有這些提交都將顯示出來,而不是合併提交。我已經閱讀了git的幫助,以及在Stack Overflow上搜索和搜索,但我找不到一種方法來做到這一點。
這裏是你可以用它來重新創建以下情形的命令:
mkdir testgit
cd testgit
git init
vim README
git add README
git commit
git checkout -b branch1
vim foo
git add foo
git commit
git checkout master
git checkout -b branch2
vim bar
git add bar
git commit
git checkout master
vim baz
git add baz
git commit
vim baz
git add baz
git commit
git checkout branch2
git merge --no-ff branch1
git checkout master
git merge --no-ff branch2
我在這一點上確實難住了,真的很感激任何指針。
奇怪的是,我正要提示'git log --merges - foo',但它沒有在樣本庫上顯示任何東西(我在這裏有Git 1.7.10.4)。 – kostix 2012-07-15 16:01:25