Sam*_*Fen 7 git github pull-request
我正在向项目提交两个独立的新功能作为pull-requests.每个功能都在主题分支中,每个功能都从主服务器的分支开始分支.
/-- feature1
master ---
\-- feature2
Run Code Online (Sandbox Code Playgroud)
问题是虽然任何一个分支都可以自己干净地合并到master中,但是当合并第二个分支时,它会产生冲突.这不是因为这些功能相互依赖,而是碰巧碰到相同的代码.
一个简单的例子:如果原始文件是逗号分隔的列表,并且每个提交想要向其添加一个新项目,它可能如下所示:
master:
a,
b,
c
feature1:
- c
+ c,
+ d
feature2:
- c
+ c,
+ e
Run Code Online (Sandbox Code Playgroud)
在一天结束时,如果两个拉取请求都被接受,则d和e最终应该以任何顺序添加到列表中(因为这些特征是完全独立的,因此它们不相互依赖).但是,如果你试图将它们拉进去,你就会发生冲突.
处理这个问题的最佳方法是什么?feature2应该基于feature1的结尾,然后它们应该以正确的顺序合并到master中吗?
master ---
\--- feature1
\------ feature2
Run Code Online (Sandbox Code Playgroud)
如果我这样做,feature2的pull-request会显示feature2提交,还是会显示所有feature1 + feature2提交?
或者我应该在feature1合并到master之后重新设置feature2?
由于这两个功能都不是建立在另一个基础上的,因此您应该像最初那样从 master 分支出来。即使他们触及一个共同的文件(微不足道),这也是如此。
然后在第一个 (feature1) 与原始 master 合并后重新设置第二个拉取请求 (feature2)(如果首先合并 feature2,则重新设置 feature1)。
git fetch upstream
git rebase upstream/master feature2
Run Code Online (Sandbox Code Playgroud)
在这里,我们从上游获取提交(您从中分叉的原始源),然后使用其提交重新定位我们的本地功能分支。
然后修复您可能遇到的任何合并冲突并将该提交推回您的分支。功能 2 的拉取请求将更新,现在包括修复可能的合并冲突的提交,并使合并回原来的更清晰/更容易。
或者原始存储库将只获取您的两个拉取请求分支并将它们合并到自己中,修复可能出现的任何冲突。
| 归档时间: |
|
| 查看次数: |
1811 次 |
| 最近记录: |