如何在Github上重播从原始repo到我的fork的更改?

时间:2014-02-14 07:03:02

标签: git github

有一个别人的回购与MIT许可的项目,我已经分叉它并偶尔提交拉取请求,其他贡献者也推动他们的更改,但我的fork的主分支没有所有那些更改(我为每个新的拉取请求推入一个新的分支)。

所以我想让原始回购中的所有更改都在我的fork的master分支上重放。以下是否可以完成这项工作?

 git checkout master
 git pull --rebase SomeoneElsesRepo master
 git push MyFork master

我是否能够提交拉取请求,而不会将git pull所引起的更改归因于拉取请求(如in this question所述)?

1 个答案:

答案 0 :(得分:3)

这有一个Github Guide

TL; DR:

git remote add upstream https://github.com/<otheruser>/<repo>.git
git fetch upstream

选项a)如果您喜欢合并:

# assuming you're on master
git merge upstream/master
git push origin # assuming origin is your fork

选项b)如果您更喜欢改变:

# assuming you're on master
git rebase upstream/master
git push origin # this might fail with a 'non-fast-forward' error
    # in which case, insert --force after the word 'push'

关于拉取请求(PR):

PR将始终包含分支中的所有提交以及不在目标分支中的提交。如果您在目标分支中不提交的提交中进行rebase / merge?是的,他们将出现在公关。不希望这种情况发生? Rebase或者只选择你想要的PR中的提交到一个新的分支。 (Srsly,Google上有这方面的bazillion指南,在这里SO。)