2011-03-29 44 views

回答

14

查找一個作者所有提交和它們的散列保存到一個文件:

git log --author=<author> --format=%H > /tmp/commit-by-x 

創建一個新的分支,不包含此特定的作者犯,因爲你不想兩次應用它們。對於這一點,你可以創建一個新的空分支:

git checkout --orphan commits-by-x 

櫻桃挑選作者所有提交(從最舊到最新):

tac /tmp/commit-by-x | while read sha; do git cherry-pick ${sha}; done 

很顯然,如果你想這個成功的變化author-x引入的內容必須非常本地化。

+0

偉大的解決方案!我沒有使用--orphan,而是在該步驟使用git checkout -b 獲得了更多的成功,並且修改了tmp文件,使其僅包含特定作者的最近十幾次提交。如前所述,如果作者的提交分佈在多個分支上,這將不會輕鬆工作,因此您可能需要在第一個命令生成後僅從tmp文件中選擇特定的哈希。 – emery 2015-11-24 01:38:06

相關問題