我正在master
分支机构工作。
我对我的项目进行了很多更改,然后提交&通过以下方式推送对远程存储库的所有更改:
git push origin master
然后,我创建了一个新分支,并将最新代码推送到新分支(使其成为远程分支),如下所示:
git branch new-branch
git checkout new-branch
git push origin new-branch
我现在在new-branch
。现在,master
和& new-branch
具有相同的最新代码本地&的远程
我的问题是:
如何在本地和远程还原主分支上更改。 但仅保留所有更改 new-branch
?
答案 0 :(得分:1)
转到主分支,然后执行git revert HEAD
和git push origin master
。
这将创建一个新的提交,以反转您要撤消的提交。
你也可以git reset --hard HEAD^
(在主分支上)和git push -f origin master
(-f
来强制推送),但如果有人拉出你推的最新更改,给他们带来麻烦。
new-branch
上的更改不应受这些操作的影响。
答案 1 :(得分:0)
由于你已推送它,理想的方法是git revert
master和push master中的提交:
git checkout master
git revert HEAD
git push origin master
以上将创建一个新的提交,它是前一个
的恢复(撤消更改)答案 2 :(得分:0)
这假设您已经在新分支上。
git push . +master^:master
git push origin +master
这样,您甚至无需查看母版,即可在本地和远程将其回滚。
如果某人已经在主人身上工作,请小心。如果他们想要推动他们的更改,他们将不得不在其他提交之上重新定义他们的更改。