[英]How to safely undo commits that already in remote master branch & move them into another branch?
我现在正在开发一个功能,我想在一个featureX
分支中进行该featureX
但是我忘记创建该分支并签入该功能。 现在这会引起问题,因为我的团队远程主分支(我们正在使用BitBucket)中已经有2个提交,如下所示:
如何将d40ef79
和5e13fd7
移入featureX
分支,以便可以继续在该featureX
分支上工作,并从master分支中删除这2个提交,而又不会丢失队友( 29ac4fb..1606c1a
)创建的最新提交?
我尝试此答案中的第一个选项,但对我不起作用。 我也尝试在featureX
分支(从master分支)中尝试git cherry-pick
featureX
对我也不起作用。
最简单的方法是还原。
git revert <SHA-1>
撤消git commit。 还原给定提交所做的更改。
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分支的顶端应用由提交引入的更改,并使用此更改创建一个新的提交。
的语法...
是一个承诺范围。 抓取从开始(排除)到最后一个的所有提交。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.