繁体   English   中英

如何安全地撤消已在远程主分支中的提交并将它们移至另一个分支?

[英]How to safely undo commits that already in remote master branch & move them into another branch?

我现在正在开发一个功能,我想在一个featureX分支中进行该featureX但是我忘记创建该分支并签入该功能。 现在这会引起问题,因为我的团队远程主分支(我们正在使用BitBucket)中已经有2个提交,如下所示:

在此处输入图片说明

如何将d40ef795e13fd7移入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 -fgit rebasegit filter-branch


如何将所需的提交添加到不同的分支。

git cherry-pick <SHA-1>...<SHA-1>

在master分支的顶端应用由提交引入的更改,并使用此更改创建一个新的提交。

的语法...是一个承诺范围。 抓取从开始(排除)到最后一个的所有提交。

在此处输入图片说明


阅读完整的git cherry-pick文档,获取可以使用的所有选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM