如果已存在拉取请求,如何发送新文件的拉取请求

时间:2013-09-12 06:21:43

标签: git github

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

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

我如何从我的本地回购开始?

1 个答案:

答案 0 :(得分:3)

  

我在本地的一个单独的分支中做了一些更改。然后将其与主人

合并

请勿:您应该从分支机构提出拉动请求,而该请求在您分叉的 upstream repo 中不存在。
这样,您就可以使master始终与上游(原始)回购邮件的master保持同步。

有关详情,请参阅“a couple of tips on pull requests”。

upstream and fork

这意味着:

  

我从github分发了一个回购。我在一个单独的分支本地进行了一些更改

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

然后您可以从上游拉出来更新您的主服务器(您从未接触过:您只需将上游存储库中的提交添加到您的本地克隆,并将主服务器推送到您的分支以使其保持最新)。

然后,您可以在更新后的主服务器上重新设置本地分支,检查所有内容是否仍然有效,并将--force 推送到您的分支机构。

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


详情:

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