2011-03-29 41 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

相关问题