我有一个流程,我将在那里开展单独的开发工作。然后分支机构将它们合并到“稳定”状态。完成后的主分支。然后,我将为从master创建的下一个开发分支创建一个新分支。这确保了每个开发分支始终包含最新的稳定更改。但我犯了一个错误。我忘了将开发分支合并到master中,但后来我从master创建了一个新的分支并且对它进行了很多工作。所以这个有很多变化的新分支并不是最新的稳定变化。
我继续将先前的开发分支合并为主 - 我忘了合并。现在我需要将master中的更改合并到我最新的开发分支中。但我实际上并不想将主分支合并到dev分支中,带来了它的所有历史记录。我希望这些分支保持独立,我只想比较两个分支之间的差异,并将来自master的相应代码合并到dev分支中作为单个新提交。我知道会有冲突。怎么能实现呢?
如果可能的话,我宁愿用Xcode的源代码控制来直观地进行比较和选择更改,但如果没有使用终端就可以了。
答案 0 :(得分:0)
如果我了解你的情况:
在这种情况下你可以做的是rebase你的分支对抗主人。
# When on your feature branch:
git rebase master
这将确保您在master上存在的任何新工作之后预先完成的工作。它还会重写历史记录,因此如果您已经在任何时候推送了该功能分支,那么您必须强制推送它以确保维护正确的历史记录。
澄清我的最后一点:当你通过创建一个类似于另一个提交的提交来修改你提交的overwrite the history时,但它与它不同(不同的祖先) 。
这里的主要指导原则是历史已经发生变化,如果该历史记录已发布,您将需要确保已发布而非的历史记录,以便历史记录显示为应该关于rebase操作。
答案 1 :(得分:0)
合并时可能需要使用--squah修饰符。这将合并代码,但不会创建合并两个分支的历史记录的提交。