在存储库中,由AssemblyInfo文件的自动构建工具更新(项目在C#中)导致了大量的提交。这些提交都有“Dev BuildAgent”作为作者。
有没有办法将存储库中的所有提交从特定作者压缩到另一位作者的第一个孩子?
当然,一种可能性是使用根提交的SHA运行git rebase --interactive
并且手动遍历提交列表并手动将squash命令应用于相应的提交。但是,知道是否有更快的选项是有用的,记住有大量的提交。
答案 0 :(得分:2)
要使用电子邮件foo@bar.com
将作者的所有提交压缩到另一位作者的下一个子提交中,您可以使用以下内容。您当然也可以检查任何其他属性,如作者姓名,提交者电子邮件,提交者名称......
git filter-branch --commit-filter '[ "$GIT_AUTHOR_EMAIL" = "foo@bar.com" ] && skip_commit "$@" || git commit-tree "$@"'