gpt4 book ai didi

git rebase 掌握两个相互叠加的功能分支

转载 作者:行者123 更新时间:2023-12-03 09:06:01 25 4
gpt4 key购买 nike

我有这样的情况:

                                   H---I---J feature2
/
E---F---G feature1
/
A---B---C---D master

我想让我的 master 保持最新状态,因为它在开发功能时变化非常频繁。我目前的工作方式如下:

git checkout master
git pull
git checkout feature1
git rebase master
git checkout feature2
git rebase feature1

有没有更简单的方法来完成所有这些步骤?我正在使用最新的 sable git 版本。另外,我有时会遇到这样的情况,甚至有 6 个功能分支,因此如果有任何解决方案可以在另一个功能分支之上扩展许多功能分支,那就太好了。

最佳答案

实际上,仅对 feature2 进行 rebase 也会feature1 进行 rebase ,因为它会复制其提交并将其重播到 master.

然后,您可以将 feature1 重置为其新的 HEAD 提交,位于 feature2 HEAD 之前的“n”次提交。
你可以先count the number of commits of feature2与:

git checkout feature2
git rev-list --count HEAD ^feature1 # memorize that in 'n'

然后 rebase (无需 checkout master 并 pull ):

git fetch
git rebase origin/master

H'---I'---J' feature2
/
master E'---F'---G'
| /
A---B---C---D--Y--Z origin/master
\
E--F--F (feature1)

最后reset feature1

git branch -f feature1 feature2~n

因此,如果我们将该场景扩展到 6 个分支:

  • 一次 rebase (即使有 6 个连续分支)
  • 但是 5 git rev-list (计算其他分支 HEAD 的位置)
  • 并重置 5 个 git 分支。

无论如何,都需要编写脚本才能扩展。

关于git rebase 掌握两个相互叠加的功能分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47206443/

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