1

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

> git branch -a

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

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

一周后,创建了一个新分支,用于对上游进行特定增强。该团队可能会在这个分支上工作数周。

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.

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

4

1 回答 1

0

拉取请求背后的想法是:

  • 你在做一个小的增强,你希望看到合并到上游分支
  • 您将增强功能推送到您的 fork ( origin),然后从那里发出拉取请求

叉子

但:

您应该在专用分支中进行增强,而不是在目标分支中。
这意味着,不在 inmaster或 in new-project-feature:那些是“目标”分支,在你的 fork 中,它们用于镜像repo upstream远程跟踪upstream/masterupstream/new-project-feature.

因此,您应该创建一个或多个分支,每个分支都用于您想要贡献的小更改new-project-feature,推送那个小分支“ small_change”,然后向upstream/new-project-feature.

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

请注意,如果在您已经从 fork 发出拉取请求之后new-project-feature上游发生更改,您需要做的就是:

  • 在本地获取和更新new-project-feature分支
  • small_change在 new-project-feature 之上重新设置您的分支
  • 检查一切是否仍然有效
  • git push --force origin small_change

最后一次强制推送将自动更新您的拉取请求:您不必执行第二次拉取请求在“如何做 Github 拉取请求?
”中 查看更多信息。

于 2013-08-30T06:27:59.047 回答