最近,我将代码库从perforce迁移到了github。我使用git-p4工具设置git repo和分支映射以及提交历史记录(p4提交历史记录)。我面临一个合并两个分支QA和Development的问题,这两个分支的提交次数分别为x和y,并且x 现在,为了设置git工作流程,我将不得不将开发合并到质量检查中(以进行质量检查升级),但是,合并的结果将是重放所有在质量检查中进行的提交。我不希望发生这种情况,因为这会污染不需要的开发历史的质量检查。我只想合并开发中的较新提交。 我尝试了以下方法。 和 第二种方法行之有效,但这包括采摘樱桃的开销,并且在将QA与开发人员的修补程序合并时,事情很容易混淆。 是否有任何方法可以合并这两个分支而不继承开发的提交历史?我需要提出一个约定,我们的团队应该遵循。git merge --squash development (this did not work)
git checkout -b qa_cycle_1.0
git cherry-pick commit1 commit2 . . .
open pull request with qa_cycle_1.0 and QA
答案 0 :(得分:1)
如果您有dev的前n个提交,而又不想合并到QA中(即,您只希望最新的m个dev提交),则可以:
git merge --ours <sha1 of last n commit>
:这不会改变质量检查中的任何内容,而是将第n个提交中的最后一个记录为“合并”。git merge dev
:自上次合并以来的所有提交都将被合并。