git放弃所有更改并从上游拉

我如何获取上游回购,并取代主? 我的回购只有一个分支,那就是主人,我完全搞砸了,所以我基本上需要从上游重新开始。 我认为init会做这个工作,但有没有更简单的方法?

有两件事你可以在这里做 – 你可以重新login远程回购(如已删除的评论中提到的),或者你可以reset --hard – 对共同的祖先很难,然后做一个拉,这将快进远程主机上的最新提交。

具体来说,这里是Nevik Rehnel的回答( fetch之前提到的)的简单扩展:

 git reset --hard origin/master git pull origin master 

注意 :使用git reset --hard将会放弃所有未提交的更改,如果您是git的新手,可能很容易将此命令与您的命令混淆,因此请确保您在继续之前了解它将执行的操作。

而分支大师: git reset --hard origin/master

然后用git gc做一些清理(更多关于这个在man页面中)

更新:你也可能需要做一个git fetch origin (或者,如果你想要该分支的git fetch origin master ); 如果在重置之前或之后执行此操作应该没有关系。 (谢谢@ eric-walker)

你可以用一个命令来完成它:

 git fetch --all && git reset --hard origin/master 

或者在一对命令中:

 git fetch --all git reset --hard origin/master 

请注意, 您将失去所有本地更改

 git reset hash --> you need to know the last good hash, so you can remove all your local commits git fetch upstream git checkout master git merge upstream/master git push origin master -f 

瞧,现在你的叉子和上游一样。