我有一个包含大量更改的存储库。我想查看与特定问题相关的更改。这些提交已经在主分支中,并与不相关的提交交错。我可以通过消息中的特定文本识别那些有趣的提交。我还可以使用git diff
命令查看各个更改。但是,我希望将它们视为单个补丁:如果第一次提交改变了一些行而第二次改变了它们,我不想看到临时状态。我也不希望看到来自无关提交的任何更改(除非有必要解决冲突)。
我能想到的实现这一目标的唯一方法是在首次提交之前将整个树更新为状态。依次应用更改,然后将git diff
工作目录应用于基本修订。
但是,如果包含提交取决于未包含的提交,则无法工作。我宁愿只包括来自其他提交的必要更改,而不是失败或不得不手动解决冲突。输出只能由人类读取,因此只要包含所有相关更改,我就不会关心如何处理冲突。
如果我不必在此操作之前隐藏我的本地更改,那也很好。
如何避免这些问题并生成这样的补丁?
答案 0 :(得分:1)
有一个名为combinediff
的程序应该可以做到这一点;为您关注的每个更改制作差异,然后将它们全部提供给combinediff
。它是patchutils
程序包的一部分,在Linux上通常可以通过您的发行版程序包管理器获得。来源位于https://github.com/twaugh/patchutils。