我发现自己经常遇到以下 Git 场景:
只是想知道这里最好的工作流程是什么。当然,我可以删除分支 B,再次创建它并复制我的提交,但这似乎很乏味。rebase 不是一个选项,因为我已经推送到远程仓库。也许我可以恢复从分支 A 到 B 的所有提交?也许我应该在创建分支之前创建一个别名来检查 main ?
最简单的解决方案:重新定位到
git rebase
具有 on 模式可以完全按照您的意愿进行操作:
git rebase --onto main A B
将从 A 中取出 B 并将其重新定位到 main 上。
如果您在运行此程序时已签出 B,则无需在该 rebase 命令行上指定它。
Cherry Pick 选项您也可以通过樱桃挑选操作来完成。
在正确的位置创建一个新分支,从 B 中挑选所有提交到它上面,然后将 B 重置为它。
git checkout main # or where the branch should start from
git checkout -b B-new # pick a new name, you'll need access to both B and B-new
git cherry-pick A..B # cherry pick all commits on B not on A
现在B-new
是您首先要创建的分支。您可以只使用新名称,或者如果您想保留名称B
,请将其重置为B-new
:
git checkout B
git reset --hard B-new
并清理,因为您现在不再需要B-new
:
git branch -d B-new
但所有这一切都在做 rebase 所做的一切......
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句