git与特定的提交合并

时间:2018-09-25 04:01:24

标签: git perforce git-p4

最近,我将代码库从perforce迁移到了github。我使用git-p4工具设置git repo和分支映射以及提交历史记录(p4提交历史记录)。我面临一个合并两个分支QA和Development的问题,这两个分支的提交次数分别为x和y,并且x

现在,为了设置git工作流程,我将不得不将开发合并到质量检查中(以进行质量检查升级),但是,合并的结果将是重放所有在质量检查中进行的提交。我不希望发生这种情况,因为这会污染不需要的开发历史的质量检查。我只想合并开发中的较新提交。

我尝试了以下方法。

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

第二种方法行之有效,但这包括采摘樱桃的开销,并且在将QA与开发人员的修补程序合并时,事情很容易混淆。

是否有任何方法可以合并这两个分支而不继承开发的提交历史?我需要提出一个约定,我们的团队应该遵循。

1 个答案:

答案 0 :(得分:1)

如果您有dev的前n个提交,而又不想合并到QA中(即,您只希望最新的m个dev提交),则可以:

  • 合并前n个提交,但使用git merge --ours <sha1 of last n commit>:这不会改变质量检查中的任何内容,而是将第n个提交中的最后一个记录为“合并”。
  • 合并dev分支:git merge dev:自上次合并以来的所有提交都将被合并。