我开始在branchB 工作。这是从branchA 分支出来的。几周后,主线分支develop已经合并了很多提交。分支A和B都远远落后。
--d1--d2--d3 ...2 weeks later... --d253 develop
\
a1--a2--a3 branchA
\
b1--b2--b3 branchB (current)
Run Code Online (Sandbox Code Playgroud)
我想跟上开发分支的最新动态。并且更喜欢在最新的提交 d253 处将我的branchB 重新设置为develop。另外,来自branchA 的所有提交都应该被忽略。这将避免我为解决合并冲突付出巨大的努力(有很多)。因为我不是那个branchA的维护者。我可以在我的branchB 中重新创建我需要的A 依赖项。不确定我是否应该在变基之前或之后执行此操作。
--d1--d2--d3 ..... --d253 develop
\ \
a1--a2--a3 \
\
b1'--b2'--b3'
Run Code Online (Sandbox Code Playgroud)
Q1. 这样做是否正确
git checkout develop
git pull
git checkout branchB
git rebase --onto develop branchA
Run Code Online (Sandbox Code Playgroud)
Q2。假设冲突的数量非常重要,大约有 30 个文件。与 相比, rebase 仍然是一个好方法git merge develop吗?
Q1 - 嗯,这是执行图片中所示操作的命令,是的。如果分支 b 与分支 a 正交,我想那没问题。我会犹豫是否要这么做;您是否有理由不想将两个分支重新设置为当前的 d 提交?
Q2 - 我没有注意到rebasevs.merge在冲突解决方面有很大的不同。最大的区别是,对于您指定的特定变基,您不会包含更改a;这意味着如果a更改与d更改发生冲突,您不必处理它。(如果b更改与更改重叠a,我认为这本身不会被视为冲突,但很可能导致代码处于损坏状态。)
真正的问题是,b提交是否与其他开发人员共享?如果是这样,那么通常不建议将它们重新定基,因为这会给其他开发人员带来问题。
| 归档时间: |
|
| 查看次数: |
4538 次 |
| 最近记录: |