1

我有这种情况。我从 github 分叉了一个 repo。我在本地的单独分支中进行了一些更改。然后将其与master合并。然后我把它推送到我的 github 仓库。我也发送拉取请求。

有人在主仓库上的文件中进行了更改。我想获取它并在该文件中进行更改。我想单独发送它的拉取请求。

我如何从我的本地仓库开始?

4

1 回答 1

3

我在本地的单独分支中进行了一些更改。然后将其与master合并

不要:您应该从您分叉的上游仓库中不存在的分支发出拉取请求。
这样,您可以始终与上游(原始)存储库保持master同步。master

有关更多信息,请参阅“关于拉取请求的一些技巧”。

上游和分叉

这意味着:

我从 github 分叉了一个 repo。我在本地的单独分支中进行了一些更改

推送该分支,并从该分支发出拉取请求(带有目标upstream repo/master:)

然后,您可以从上游拉取以更新您的 master(您永远不会触及:您只需将上游 repo 中的提交添加到本地克隆,并将 master 推送到您的 fork 以使其保持最新状态)。

然后,您可以在更新后的 master 之上重新设置本地分支,检查一切是否仍在工作,然后将 --force 推送到您的 fork 该分支。

神奇之处在于:您现有的拉取请求将自动更新为您刚刚强制推送的分支中的新提交。


详细说明:

cd /local/path/to/your/clone
git remote add upstream https://github.com/user/original_repo
git fetch upstream

git checkout master
# reset master to upstream master
git reset --hard upstream/master

git checkout yourBranch
git rebase master
# check that everything works

git push -f origin master
git push -f origin yourBranch
# Make your pull request from your branch in your fork on GitHub

一旦完成,您的补丁的未来演变意味着:

# update master with upstream master new commits
git checkout master
git pull upstream master

# rebase your local branch
git checkout YourBranch
git rebase master
# check that everything still works

git push origin master
git push origin yourBranch
# your pull request will AUTOMATICALLY BE UPDATED!
# nothing to do on GitHub
于 2013-09-12T06:43:17.500 回答