当原始特征分支与南瓜合并时,在特征分支之上进行开发的过程

  • 本文关键字:分支 特征 过程 开发 原始 合并 git
  • 更新时间 :
  • 英文 :


当我发现自己时,这种情况并不少见:

  • 需要处理下一个功能
  • 在将最新工作整合到主分支之前
  • 新工作需要来自前一个分支的代码
  • 合并到主是南瓜。

发生这种情况时,合并是痛苦的。

场景:

git checkout develop
git checkout -b feature/A
git commit -am "A1" 
git commit -am "A2" 
git push // + start a pull request
//Before the pull request is finished 
git checkout -b feature/B
git commit -am "B1" 
// Pull request is accepted and merged as a squash
// Other pull requests 
git fetch origin develop
git merge origin/develop
(conflicts)

现在:

  • feature/BA1A2B1
  • develop有一个提交D1,其中包含来自A1A2的更改
  • 而 Git 无法知道D1A1+A2
  • 它正确地将feature/B接触feature/A更改的代码的地方标记为 冲突。

理想情况下,我希望能够:

  1. 没有冲突,从developfeature/B来自feature/A
  2. 如果更改来自另一个分支(或不是来自提交A1A2,则会发生冲突。

这可能吗?

所以你有

功能 A:

O---A1---A2

特征 B:

O---A1---A2--B1

然后在上游完成壁球,您需要获取更新:

git fetch
O---A1---A2--B1 <--featureB

--D1 <-- origin/develop

你尝试合并,

O---A1---A2---B1--XX Conflict
               /
--D1---------/

您需要在 D1 上重定 B1 的基数,而不是合并

git rebase --onto origin/develop featureA featureB

会做的

O---A1---A2
         
--D1--B1

最新更新