我现在正在开发一个功能,我想在featureX
分支中进行,但我忘了创建该分支并结帐。这导致了一个问题,因为我的团队远程主分支已经提交了2个(我们正在使用BitBucket),如下所示:
如何将d40ef79
和5e13fd7
移动到featureX
分支中,以便我可以继续处理该featureX
分支并从主分支中删除该2个提交而不会丢失最近的我的队友创建的提交(29ac4fb..1606c1a
)?
我在this answer内尝试第一个选项,但它对我不起作用。我也在git cherry-pick
分支内部featureX
尝试(从主人那里分支) - 对我来说也不起作用。
答案 0 :(得分:1)
最简单的方法是恢复。
git revert <SHA-1>
强> 撤消git提交。还原给定提交所做的更改。
reset and force push
强> # reset the branch to the desired commit
git reset <SHA-1>
还有其他方法,但不建议使用它们git push -f
,git rebase
,git filter-branch
)
git cherry-pick <SHA-1>...<SHA-1>
在master分支的顶端应用commit提交的更改,并使用此更改创建一个新的提交。
...
的语法是提交范围。从开始(排除)到最后一个提取所有提交。
宣读完整的git cherry-pick
documentation for all the options you can use