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
瞧,现在你的叉子和上游一样。