我在Github上fork了别人一个项目,然后修改之后按照正常流程提交PR,并且对方merged了。
我现在又需要对该项目进行贡献代码,但是发现对方的项目仓库也有别人更新了新代码上去,我怎么让我自己仓库中fork的这个项目代码也同步到和对方仓库一样的最新版本代码,然后我再进行贡献?
首先 把别人的仓库添加到你的上游远程,通常命名为 upstream。操作一次就可以了。
git remote add upstream 原作者仓库地址
此时再用 git remote -v 就可以看到一个origin是你的,另外一个upstream是原作者的。
git remote -v
其次 更新代码
使用git fetch upstream 拉去原作者的仓库更新。
git fetch upstream
使用git checkout master 切换到自己的master
git checkout master
master
使用 git merge upstream/master, merge或者rebase到你的master
git merge upstream/master
如果从上次被merge后,没有在修改你的仓库中fork的代码,那么我建议直接把你的仓库中这个项目删掉,然后重新fork.
我个人不太喜欢楼上说的merge的方式 -- merge方式的历史记录不太好看。
如果不想删除重新fork,可以直接:
git checkout master git remote add upstream 别人的代码库地址 git fetch upstream/master git reset --hard upstream/master
先添加你 fork 的库的地址
git remote add FORK-sync https://github.com/xxx/yyy.git git remote -v
能看到类似的
FORK-sync https://github.com/xxx/yyy.git (fetch) FORK-sync https://github.com/xxx/yyy.git (push) origin git@github.xxx/born-1.git (fetch) origin git@github.xxx/born-1.git (push)
然后接受所 fork 库的内容
git fetch FORK-sync
合并
git merge FORK-sync/master
再推送到你的远程仓库就行了
git push
雷雷
这些图文教程早就有了。http://blog.csdn.net/qq133247...
首先 把别人的仓库添加到你的上游远程,通常命名为 upstream。操作一次就可以了。
此时再用
git remote -v
就可以看到一个origin是你的,另外一个upstream是原作者的。其次 更新代码
使用
git fetch upstream
拉去原作者的仓库更新。使用
git checkout master
切换到自己的master
使用
git merge upstream/master
, merge或者rebase到你的master如果从上次被merge后,没有在修改你的仓库中fork的代码,那么我建议直接把你的仓库中这个项目删掉,然后重新fork.
我个人不太喜欢楼上说的merge的方式 -- merge方式的历史记录不太好看。
如果不想删除重新fork,可以直接:
先添加你 fork 的库的地址
能看到类似的
然后接受所 fork 库的内容
合并
再推送到你的远程仓库就行了
雷雷
这些图文教程早就有了。http://blog.csdn.net/qq133247...