Git 修改基本提交时更新所有(本地)受影响的分支

Git 修改基本提交时更新所有(本地)受影响的分支,git,Git,Support I的git状态如下([]中的字母对应提交哈希): 现在我必须更新base(修复关键评论),这样它的提交散列就从111变为222。所有的fork(使用git checkout-b创建的)都不是最新的,这就是我想要修复的。有几种方法可以手动执行此操作,例如,为所有(本地)受影响的子级重新设置基址或git签出基址(&git branch-D branch_1&&git签出-b branch_1&&git cherry pick 112,重复此操作。似乎可以自动化这个想法,但在继续之前,

Support I的git状态如下([]中的字母对应提交哈希):

现在我必须更新
base
(修复关键评论),这样它的提交散列就从
111
变为
222
。所有的fork(使用git checkout-b创建的)都不是最新的,这就是我想要修复的。有几种方法可以手动执行此操作,例如,为所有(本地)受影响的子级重新设置基址或git签出基址(&git branch-D branch_1&&git签出-b branch_1&&git cherry pick 112,重复此操作。似乎可以自动化这个想法,但在继续之前,我想检查一下是否有任何可用的东西


所以,这就是问题所在:是否有任何内置功能可以让我达到预期的目标?

在分支上,您可以
git-rebase-base
基本上完成您编写的操作:切换到新的
base
并在新的
base
上重新应用来自分支的每个提交

但由于Git是分散的,所以无法在“每个”分支上循环,因为您不知道在回购的其他克隆上可能存在哪些分支。如果您知道要更新哪些分支,则可以在一个简单的bash循环中包装rebase:

branch1 branch2中的分支机构名称的
;做
git rebase base${branch_name}
完成

嗯,“every”意味着“每个本地”生成的脚本可能会更复杂一些(branch2应该在branch_1的顶部重新设置基础,在branch_1在更新的基础上重新设置基础之后)。此外,如果一些分支机构共享提交,可能会有一些奇怪之处。
base[111] => branch_1[112], adds 1 commit => branch_2[113], adds 1 more commit
       \\
        \\=> branch_3[114], adds 1 totally different commit