转自
我们在进行Github协同开发的时候,往往会去fork一个仓库到自己的Github中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Github本身并没有自动进行同步的机制,这个需要我们手动去执行,现在我来演示一下如何进行自己的仓库和原仓库进行Gith同步的操作。
(1)我使用终端 命令行的方式在Mac中来操作。首先在终端中配置原仓库的位置。进入项目目录,执行如下命令:查看你的远程仓库的路径。
$git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git(fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git(push)
(2)配置原仓库的路径:
下面这步操作即添加主repo为上游代码库
注意一定要cd到你自己fork出来的库里面去,比如工程名叫luoluo,那要先cd到luoluo中去,然后才能操作
$git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
(3)再次查看远程目录的位置:
$git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git(fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORM.git(push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git(fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git(push)
(4)抓取原仓库的修改文件:
$git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
* [new branch] master -> upstream/master
(5)切换到master分支。
$ git checkout master
Switched to branch 'master'
(6)合并远程的master分支:
$ git merge upstream/master
(7)此时,你的本地库已经和原仓库已经完全同步了。但是注意,此时只是你电脑上的本地库和远程的github原仓库同步了,你自己的github仓库还没有同步,此时需要使用“git push”命令把你本地的仓库提交到github中。