我如何取回上游回购,并使其取代主人?我只有一个分支在我的回购,这是主,我完全搞砸了,所以我基本上需要从上游重新开始。我认为 init 可以完成这项工作,但是有更简单的方法吗?
而在分会会长身上: git reset --hard origin/master
git reset --hard origin/master
然后用 git gc做一些清理(在手册页中有更多关于这方面的内容)
git gc
更新: 您可能还需要做一个 git fetch origin(或者 git fetch origin master,如果您想 只有分支) ; 它不应该问题,如果您这样做之前或之后的重置。(谢谢@Eric-walker)
git fetch origin
git fetch origin master
这里至少有两件事情可以做,你可以重新克隆远程回购,或者你可以 reset --hard到共同的祖先,然后做一个 pull,这将快进到远程主服务器上的最新提交。
reset --hard
具体来说,这里是 Nevik Rehnel 原始答案的一个简单延伸:
git reset --hard origin/master git pull origin master
注意 : 使用 git reset --hard将丢弃任何未提交的更改,如果您是 git 的新手,那么很容易将自己与这个命令混淆,因此在继续之前,请确保您了解它将要做什么。
git reset --hard
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
瞧,现在你的叉子又回到上游了。
你可以用一个简单的命令来完成:
git fetch --all && git reset --hard origin/master
备注:
1警告 你将失去所有的本地变化
如果你想要一个不同于 master的分支,你必须使用:
master
git fetch --all && git reset --hard origin/[BRANCH]
你可以用两个命令把它分开:
git fetch --all git reset --hard origin/master
我终于意识到
应该是的
git fetch --all && git reset --hard origin/<branch_name>
相反(如果在不同的分支上工作)