如何将Master分支还原到上游


145

我已经分叉了一个git仓库并在上游设置。我在Master分支中进行了一些更改,然后提交并推送到github。

现在我该怎么做才能放弃我在Master分支中所做的所有更改,并使它与上游的master分支相同?

Answers:


277

(我假设您现在要忽略的更改位于您的origin远程站点,您在master分支机构中,并且您想要还原为upstream远程)

首先,将工作副本重置为上游主数据库:

git remote update
# the double hyphen ensures that upstream/master is
# considered as a revision and not confused as a path
git reset --hard upstream/master --

然后将这个新的分支头推到您的原始存储库中,而忽略了它不是一个快进的事实:

git push origin +master

14
git remote add upstream <upstream_repo_url>如果您使用GitHub分叉分支,则可能还需要运行。
加藤

3
+in 的含义是git push origin +master什么?和刚才一样git push origin master吗?
bluenote10

4
@ bluenote10他们不一样。这+就是告诉git“ [忽略]它不会是快进的事实”。这有点像做一个git push --force,但是它仅适用于该特定引用。
nickgrim

1
没为我工作。修改了项目后,我执行了git status。我将不得不擦拭并重新开始。Git非常难以理解。
米奇

1
@mehmet不,它仅更改您所在的分支。
约翰·约翰(John John)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.