我有以下情况:
如何使用 SourceTree 将上次提交(已删除 ProxyFinder...)rebase
到 warning-fixes
上?
一种方法是将 staging
merge 到 warning-fixes
中,然后将 staging
重置为之前的提交,但这听起来像是令人讨厌的解决方法。
最佳答案
最好的方法如 @ElpieKay's comment 中所述。 ,并在问题末尾:将 staging
merge 到 warning-fixes
中,然后将 staging
重置为之前的提交。
要从命令行执行此操作,请执行以下操作:
git checkout warning-fixes
git merge staging
git checkout staging
git reset --hard HEAD^
在 SourceTree 中:
- 双击
warning-fixes
进行查看。 - 右键单击
暂存
。 - 点击
将暂存 merge 到当前分支
。 - 双击
staging
进行查看。 - 右键单击上一个提交,即
origin/staging
当前所在的位置。 - 点击
将当前分支重置为此提交
。
您不想使用rebase
的原因是它不仅会移动提交,还会移动分支指针。在这种情况下,尝试将 staging
重新设置为 warning-fixes
不会有任何效果,因为 staging
顶端的提交已经具有相同的内容父级作为警告修复
的提示。
唯一真正的替代方案是使用cherry-pick
,但这将(默认情况下)使用新的提交者日期创建重复提交。 (如果您有多个 promise 要移动,这会变得很痛苦。)
关于git - 如何使用 SourceTree 将指定的提交 rebase 到不同的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39768853/