搜索

首页  >  问答  >  正文

git - 怎么把自己fork别人的仓库中的代码更新至最新版本?

我在Github上fork了别人一个项目,然后修改之后按照正常流程提交PR,并且对方merged了。

我现在又需要对该项目进行贡献代码,但是发现对方的项目仓库也有别人更新了新代码上去,我怎么让我自己仓库中fork的这个项目代码也同步到和对方仓库一样的最新版本代码,然后我再进行贡献?

三叔三叔2753 天前1264

全部回复(5)我来回复

  • 世界只因有你

    世界只因有你2017-06-20 10:08:00

    首先 把别人的仓库添加到你的上游远程,通常命名为 upstream。操作一次就可以了。

    git remote add upstream  原作者仓库地址

    此时再用 git remote -v 就可以看到一个origin是你的,另外一个upstream是原作者的。

    其次 更新代码

    使用git fetch upstream 拉去原作者的仓库更新。

    使用git checkout master 切换到自己的master

    使用 git merge upstream/master, merge或者rebase到你的master

    回复
    0
  • 为情所困

    为情所困2017-06-20 10:08:00

    如果从上次被merge后,没有在修改你的仓库中fork的代码,那么我建议直接把你的仓库中这个项目删掉,然后重新fork.

    我个人不太喜欢楼上说的merge的方式 -- merge方式的历史记录不太好看。

    如果不想删除重新fork,可以直接:

    git checkout master
    git remote add upstream 别人的代码库地址
    git fetch upstream/master
    git reset --hard upstream/master

    回复
    0
  • 怪我咯

    怪我咯2017-06-20 10:08:00

    先添加你 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

    回复
    0
  • 天蓬老师

    天蓬老师2017-06-20 10:08:00

    雷雷

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-06-20 10:08:00

    这些图文教程早就有了。http://blog.csdn.net/qq133247...

    回复
    0
  • 取消回复