我们在远程存储库中有一个项目。最近我创建了一个新分支" Feature7"并做了很大的改变,并做了两次,也推了两次。幸运的是,没有人从那个分支中撤出。之后,有很多提交和推送主分支,但没有人在Feature7分支上工作。
现在我要撤消两个提交并推送,如果可能的话,从本地和远程推送Feature7分支。但我希望这些变化也能保持在本地。我不想放弃我的改变。
简而言之,我只想撤消提交和推送,而不会丢失我在本地的更改。
我这样做的原因是因为在新分支中存在整个项目的行结尾的问题。所以我搞砸了整个项目的历史。无法识别我在新分支中所做的更改。
答案 0 :(得分:1)
我首先将您的feature7分支拉到本地备份分支:
git checkout -b feature7-backup origin/Feature7
然后转到原来的feature7分支,重置之前的两个提交,然后强行推送到你的遥控器:
git checkout feature7
git reset HEAD~2
git push -f origin HEAD:Feature7
所有这一切都假设你的遥控器是origin
现在,遥控器不再具有这两个提交,但是在#34; feature7-backup"中有一个本地副本。分支(以及在重置后当前分支上未提交)。