在我的情况下恢复更改

时间:2011-12-21 16:18:37

标签: git github

我正在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

3 个答案:

答案 0 :(得分:1)

转到主分支,然后执行git revert HEADgit 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

这样,您甚至无需查看母版,即可在本地和远程将其回滚。

如果某人已经在主人身上工作,请小心。如果他们想要推动他们的更改,他们将不得不在其他提交之上重新定义他们的更改。