git推到分叉的prj;将请求拉到父分支

时间:2013-08-29 20:23:11

标签: git push

当我最初分叉项目并设置我的环境时,我有这个。

> git branch -a

remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/master

我对上游项目没有“推送”权限。我必须 从我的叉子发送拉请求。

一周后,我们创建了一个新分支,用于处理上游的特定增强功能。 该团队可能在该分支机构工作数周。

remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/new-project-feature
remotes/upstream/master

我为此分支设置和提交代码的适当方式是什么? 这就是我所做的。这是正确的做法吗?

git branch new-project-feature
git checkout new-project-feature
git rebase upstream/new-project-feature
.. code changes
.. commit
git push origin HEAD:new-project-feature
.. go to github and send the pull request.

父项目如何知道将拉取请求合并到其中 新项目功能分支?

1 个答案:

答案 0 :(得分:0)

拉取请求背后的想法是:

  • 您正在处理一项希望看到合并到上游分支的小增强功能
  • 您将该增强功能推送到您的前叉(origin),并从那里发出拉取请求

fork

BUT:

您应该在目标分支的专用分支中进行增强。
这意味着,不在masternew-project-feature中:这些是“目标”分支,在您的分支中,镜像 upstream repo, 改为“ remote track upstream/masterupstream/new-project-feature

因此,您应该创建一个或几个分支,每个分支用于您想要为new-project-feature做出的小改动,推送一个小分支“small_change”,并且向upstream/new-project-feature提出拉取请求。

您可以定期提取upstream,使用最新的上游/新项目功能更新您的本地new-project-feature
然后,您可以在更新的new-project-feature分支之上 rebase 您的“small_changes”分支,然后继续处理它。

请注意,如果{/ 1>}在之后的上游中发生了变化,那么您已经从分叉发出了拉取请求,那么您需要做的就是:

  • 在本地获取并更新new-project-feature分支
  • 在新项目功能
  • 之上修改您的new-project-feature分支
  • 检查一切是否仍然有效
  • small_change

最后一次强制推送会自动更新您的拉取请求:您不必再执行第二次拉取请求
请点击“How to do a Github pull request?”了解更多信息。