Git 修改基本提交时更新所有(本地)受影响的分支
Support I的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,重复此操作。似乎可以自动化这个想法,但在继续之前,
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