gpt4 book ai didi

git - 分支一个分支,如何在另一个分支上 rebase ?

转载 作者:太空狗 更新时间:2023-10-29 14:36:25 26 4
gpt4 key购买 nike

我开始在 branchB 上工作。这是从 branchA 分支出来的。几周后,主线分支 develop merge 了很多提交。分支 A 和 B 都落后了。

--d1--d2--d3  ...2 weeks later...  --d253  develop
\
a1--a2--a3 branchA
\
b1--b2--b3 branchB (current)

我想了解开发分支的最新信息。并且更愿意在其最新提交 d253 上将我的 branchB 重新设置为 develop。此外,所有来自 branchA 的提交都应该被忽略。这将避免我解决 merge 冲突的巨大努力(有很多)。因为我不是那个branchA的维护者。我可以在我的分支 B 中重新创建我需要的依赖项 A。不确定我是否应该在 rebase 之前或之后这样做。

--d1--d2--d3  .....  --d253  develop
\ \
a1--a2--a3 \
\
b1'--b2'--b3'

Q1.这样做是否正确

git checkout develop
git pull
git checkout branchB
git rebase --onto develop branchA

Q2. 假设冲突的数量非常重要,大约有 30 个文件。与 git merge develop 相比,rebase 仍然是一个好方法吗?

最佳答案

Q1 - 嗯,是的,这是执行图片中显示的操作的命令。如果分支 b 与分支 a 正交,我想那没问题。我会犹豫这样做;您是否有理由不想将两个分支都 rebase 到当前的 d 提交?

Q2 - 我没有注意到 rebasemerge 在解决冲突方面有很大不同。最大的区别在于,对于您指定的特定 rebase ,您不会包括 a 更改;这意味着如果 a 更改与 d 更改冲突,您不必处理它。 (如果 b 更改与 a 更改重叠,我认为这本身不会被视为冲突,但它很可能导致代码处于损坏状态.)

真正的问题是,b 提交是否已与其他开发人员共享?如果是这样,那么通常不建议将它们 rebase ,因为这会给其他开发人员带来问题。

关于git - 分支一个分支,如何在另一个分支上 rebase ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42930305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com