如何将所有提交从特定用户移动到新分支?

时间:2011-03-29 08:10:16

标签: git branch commit

我有许多用户'提交'。我想将一些用户的所有提交移动到一个新的分支。

我该怎么做?

1 个答案:

答案 0 :(得分:21)

查找一位作者的所有提交并将其哈希值保存到文件中:

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

创建一个不包含此特定作者提交的新分支,因为您不想再应用它们两次。为此,您可以创建一个新的空分支:

git checkout --orphan commits-by-x

Cherry-选择该作者的所有提交(从最旧到最新):

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

显然,如果你想让它成功,那么author-x引入的变化必须非常本地化。