首页 文章

将原始GitHub存储库中的新更新提取到分叉的GitHub存储库中

提问于
浏览
545

我在GitHub上分叉某人的存储库,并希望通过原始存储库中的提交和更新来更新我的版本 . 这些都是在我分发我的副本后制作的 .

如何引入在原点中进行的更改并将它们合并到我的存储库中?

5 回答

  • 1

    如果您使用的是GitHub桌面应用程序,则右上角会有一个同步按钮 . 点击它,然后在左上角附近 Update from <original repo> .

    如果没有要同步的更改,则此操作将处于非活动状态 .

    这里有some screenshots让这很容易 .

  • 631

    除了VonC的答案,你可以根据自己的喜好进一步调整它 .

    从远程分支获取后,您仍然需要合并提交 . 我会替换

    $ git fetch upstream
    

    $ git pull upstream master
    

    因为git pull本质上是git fetch git merge .

  • 40

    您必须将原始存储库(您分叉的存储库)添加为远程存储库 .

    来自GitHub fork man page

    fork

    一旦克隆完成,你的repo将有一个名为“origin”的远程指向你GitHub上的fork . 不要让这个名字混淆你,这并不是指你分叉的原始回购 . 为了帮助您跟踪该回购,我们将添加另一个名为“upstream”的远程:

    $ cd github-services
    $ git remote add upstream git://github.com/pjhyett/github-services.git
    $ git fetch upstream
    
    # then: (like "git pull" which is fetch + merge)
    $ git merge upstream/master master
    
    # or, better, replay your local work on top of the fetched branch
    # like a "git pull --rebase"
    $ git rebase upstream/master
    

    你还有ruby gem which can facilitate those GitHub operations .

    forked

    另见“Git fork is git clone?” .

  • 88

    使用:

    git remote add upstream ORIGINAL_REPOSITORY_URL
    

    这会将您的上游设置为您分叉的存储库 . 然后这样做:

    git fetch upstream
    

    这将从原始存储库中获取包括master在内的所有分支 .

    在本地主分支中合并此数据:

    git merge upstream/master
    

    将更改推送到分叉存储库,即到源:

    git push origin master
    

    瞧!您已完成同步原始存储库 .

  • 60

    video显示how to update a fork directly from GitHub

    脚步:

    • 在GitHub上打开你的叉子 .

    • 点击 Pull Requests .

    • 点击 New Pull Request . 默认情况下,GitHub会将原始文件与您的fork进行比较,如果您没有进行任何更改,则不应该进行任何比较 .

    • 点击 switching the base . 现在GitHub会将你的分叉与原始分析进行比较,你应该看到所有最新的变化 .

    • 单击 Create a pull request 进行此比较,并为拉取请求指定可预测的名称(例如,从原始更新) .

    • 点击 Create pull request .

    • 向下滚动并单击 Merge pull request ,最后 Confirm 合并 . 如果您的fork没有任何更改,您将能够自动合并它 .

相关问题