我有以下情况:
我如何rebase
使用SourceTree从暂存(删除的ProxyFinder ...)上次提交到warning-fixes
?
一种方法是将staging
合并到warning-fixes
,然后将staging
重置为之前的提交,但这听起来像是讨厌的解决方法。
答案 0 :(得分:0)
执行此操作的最佳方式如@ElpieKay's comment中所述,并在问题的最后:将staging
合并到warning-fixes
,然后将staging
重置为之前的提交
要从命令行执行此操作,请执行以下操作:
git checkout warning-fixes
git merge staging
git checkout staging
git reset --hard HEAD^
在SourceTree中:
warning-fixes
进行检查。staging
。Merge staging into current branch
。staging
进行检查。origin/staging
当前为。Reset current branch to this commit
。您不想使用rebase
的原因是它不会移动提交,但它也会移动分支指针。在这种情况下,尝试将staging
重新定位到warning-fixes
将无效,因为staging
一角的提交已经与warning-fixes
的提示具有相同的父级。
唯一真正的替代方法是使用cherry-pick
,但这将(默认情况下)创建一个带有新提交者日期的重复提交。 (如果你有多个提交动作,那就变得很痛苦。)