【问题标题】:Create pull requests from messy GitHub fork从凌乱的 GitHub 分支创建拉取请求
【发布时间】:2016-05-13 03:07:21
【问题描述】:

我在 GitHub 上创建了一个项目。我做了一些小的改动,都在我自己的主分支中。我想让它们在上游被接受,所以我想为每个创建干净的拉取请求。

我的仓库中有created an "upstream" remote。我相信对于我想要提出的每个拉取请求,我需要:

  1. 创建一个本地分支,并检查一下
    git checkout -b mynewfeaturename
  2. 将此分支设置为上游(非我的项目)存储库的当前状态。 (变基?重置?)
  3. 查看我自己的提交并“挑选”它们以将它们应用到此分支。
  4. Push this branch to GitHub.
    git push origin mynewfeaturename
  5. Create the pull request from the branch.

我的问题有两个:

  • 以上流程正确吗?
  • 具体来说,第 2 步该怎么做?

为了帮助处于与我一样糟糕的状态的其他人,我建议理想的答案是为上述每个步骤(或任何正确的步骤)列出明确的命令,握住我们的手并引导我们完成从头到尾的过程。

【问题讨论】:

    标签: git github


    【解决方案1】:
    1. 创建一个本地分支并检查它。 (git checkout -b mynewfeaturename)
    2. 将此分支设置为上游(非我的项目)存储库的当前状态。 (变基?重置?)

    以上两个步骤的组合没有意义。您可以通过以下方式到达同一个地方:

    git checkout -b mynewfeaturename upstream/master
    

    即基于upstream/master的当前状态创建一个新的本地分支mynewfeaturename,然后通过选择性地应用提交来构建该分支。

    1. 查看我自己的提交并“挑选”它们以将它们应用到此分支。
    2. 将此分支推送到 GitHub。
    3. 从分支创建拉取请求。

    这在很大程度上是正确的,尽管您需要确保如果特定更改取决于先前提交的 PR,那么它是基于该 PR,而不是基于上游状态的目录。

    也就是说,如果您之前已经为myfeature_A 提交了 PR,而您现在想要为 myfeature_B 提交 PR,这取决于 myfeature_A 中的更改,那么:

    git checkout -b myfeature_B myfeature_A
    

    根据本地存储库的状态,如果您首先从自己的分支的交互式变基开始,通过将相关提交压缩在一起来清理历史记录,那么您的生活也可能会更轻松。

    【讨论】:

    • PR 的依赖很有趣,很有用,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2020-06-25
    • 2017-02-14
    相关资源
    最近更新 更多