【问题标题】:git push to the forked prj; pull request to a parent branchgit push 到分叉的 prj;将请求拉到父分支
【发布时间】:2013-08-29 20:23:10
【问题描述】:

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

> 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.

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

【问题讨论】:

    标签: git push


    【解决方案1】:

    拉取请求背后的想法是:

    • 您正在处理一个小改进,希望将其合并到上游分支中
    • 您将该增强功能推送到您的 fork (origin),然后从那里发出拉取请求

    但是:

    您应该在专用分支中进行增强,而不是在目标分支中
    这意味着,不在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”分支,然后继续处理它。

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

    • 在本地获取和更新new-project-feature 分支
    • small_change 分支重新设置在新项目功能之上
    • 检查是否一切正常
    • git push --force origin small_change

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-30
      • 2015-03-11
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 2016-01-04
      • 2017-12-05
      相关资源
      最近更新 更多