13

我已经分叉了一个 github 项目,然后将其克隆到本地。

my_github/the_project然后我在repo的一个新分支中做了一些改变。

然后我添加并提交了更改并推送到我的 github 存储库并提交了一个拉取请求。

所有者已收到我的请求,并希望我“重新定位到 master”以获取最新更改。我该怎么做呢?

最初我认为我可以在我当前git fetchrebase master分支内(正如我发现的大多数帖子所建议的那样......),但git fetch没有做任何事情。现在我意识到这大概是因为我仍在从my_ github/repo克隆中获取(毕竟这是我在遥控器中的名字),它还没有从 github 源所有者那里获得 master 的新更改。

我认为我可能需要做的是“刷新”我的叉子,以便我的叉子的主控是最新的,然后我可以获取那个主控,然后重新基于那个主控?

如果是这种情况,我该如何刷新我的 forks master?如果没有怎么办?

我应该为原始上游存储库添加一个远程并使用它来(本地)rebase 吗?这是首选方法吗?

4

1 回答 1

12

是的,由于您推测的原因,它没有获取任何东西。是的,您应该在本地为上游添加一个遥控器;它将在 master 上进行快进合并。

git checkout master # Make sure you are in master
git remote add author original_repo_that_you_forked_from
    # Note: This is in the format git@github.com:authors_name/repo_name.git
    #       Only needs definition once, future fetches then use it. 
git fetch author
git status # make sure you are in the master branch for the following merge
git merge author/master  # i.e. 'into' your master branch
git checkout your-branch
git rebase master        # Now get those changes into your branch.
git push origin your_branch # You can also use `-f` if necessary and `--all`

(对不起,我的语法可能不完全正确)

于 2013-11-09T23:09:22.690 回答