繁体   English   中英

如何撤消git本地和远程提交而不丢失更改

[英]How to undo git commits locally and on remote without losing changes

我们在远程存储库中有一个项目。 最近,我创建了一个新分支“ Feature7”,进行了巨大的更改,两次提交,两次提交。 幸运的是,没有人从那个分支中撤出。 之后,有很多提交和推送到master分支中,但是没有人在Feature7分支上工作。

现在,我想撤消Feature7分支的两个提交并从本地和远程推送。 但我希望更改也保留在本地。 我不想放弃我的更改。

简而言之,我只想撤消提交和推送,而不会丢失本地更改。

我这样做的原因是,在新分支中,整个项目的行尾都有问题。 所以我弄乱了整个项目的历史。 无法识别我在新分支中所做的更改。

我首先将您的feature7分支拉到本地备份分支:

git checkout -b feature7-backup origin/Feature7

然后转到原始的feature7分支,重置前两次提交,然后强制推送到您的遥控器:

git checkout feature7
git reset HEAD~2
git push -f origin HEAD:Feature7

所有这些都假设您的遥控器是origin

现在,远程不再具有这两个提交,但是您可以在“ feature7-backup”分支中本地保存它们的副本(以及在重置后在当前分支中未提交的提交)。

暂无
暂无

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

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