在Github上同步Fork过来的Repository

  在Github上fork别人的repo后,会在自己的空间内建立一个原repo的副本,如果原项目进行了更新,自己的repo是不会自动更新的。本文介绍将自己fork与原repo进行同步的方法。

  首先要指定原repo为upstream。来到原项目的页面,复制其git链接,例如:

https://github.com/id/ProjectName.git

打开终端/命令行/Git Bash,cd到自己本地repo的目录下,使用:
git remote add upstream https://github.com/id/ProjectName.git

将原项目“https://github.com/id/ProjectName.git”作为自己repo的upstream。

  然后依次fetch->checkout->rebase:

git fetch upstream
git checkout master
git rebase upstream/master

这里rebase会覆盖你的master分支,将upstream在你fork之后的更新同步到本地,并将upstream中没有的commit(比如你自己的没有提pull request的修改)放置在顶层。

  最后push到Github上,由于使用了rebase,这里需要加上-f 来强制push:

git push -f origin master