在GitHub中正确执行pull请求

时间:2013-09-02 00:50:57

标签: git github

我已阅读了精美的手册,并在此处阅读了很多问题,但我仍然不确定如何通过拉取请求正确处理提交补丁。

我正在使用GitHub for Windows(但如果需要,我可以使用命令行。)

这就是我正在做的事情,以及我感到困惑的地方:

  1. 分割原始GitHub项目以创建我自己的项目。
  2. 进行了更改 A ,我希望包含原始项目。
  3. 发送了他们接受的 A 的拉取请求,因此它现在已成为原始项目的一部分。
  4. 更改 B ,这对他们没用,所以我不希望他们将其包含在他们的版本中。
  5. 改变 C ,我希望他们使用。
  6. 更多提交,其中一些对他们有价值,其中一些不是。
  7. 分叉/分支/拉取请求/合并的正确顺序是什么:

    1. 确保我的版本包含我的所有更改。
    2. 确保我可以与上游项目分享某些更改。
    3. 一旦我在我的主分支中进行了 B 更改,任何新的分支都会包含它,那么我如何只发送 C 的相关更改?或者我是否需要根据上游在副本中的内容创建一个新的分支?
    4. 我大多只是想确保我不会让上游开发者额外的工作不得不回去并挑选某些变化。我越容易让他们更好地修复错误,那么每个人都很开心!

2 个答案:

答案 0 :(得分:1)

分叉项目的常用工作流程是根据上游分支(通常是upstream/master)创建自己的分支(或分支),并完成所有工作。每个分支通常封装一个特征。您可以发送您想要贡献的功能的拉取请求。

所以,举个例子:

  

进行了更改 A ,我希望包含原始项目。

您通常希望为更改 A 创建一个功能或错误修复分支,并将其作为拉取请求提交给GitHub,如下所示:

# Make a branch based off of upstream/master
git checkout -b branch-A upstream/master

# Make some changes, then commit them
git add .
git commit

# Push the branch to your fork, then go to GitHub and submit the pull-request
git push origin head
  

改变 B ,这对他们没用,所以我不希望他们将其包含在他们的版本中。

如果您不希望项目所有者进行此更改,请将其与其自己的分支隔离,并且不要对其进行拉取请求。请注意,如果您愿意,仍然可以将分支备份到您自己的远程分支:

# Make a branch based off of upstream/master
git checkout -b branch-B upstream/master

# Make some changes, then commit them
git add .
git commit

# Push the branch to your fork
git push origin head
  

改变 C ,我希望他们使用。

C 创建另一个分支,就像您对 A 所做的那样:

# Make a branch based off of upstream/master
git checkout -b branch-C upstream/master

# Make some changes, then commit them
git add .
git commit

# Push the branch to your fork, then go to GitHub and submit the pull-request
git push origin head

答案 1 :(得分:0)

更新比赛2015:

请参阅“Create Pull Requests in GitHub for Windows

就像我们的Mac client一样,您现在可以使用GitHub for Windows直接从桌面向GitHub或GitHub Enterprise提交拉取请求。

我们也没有忘记叉!如果您分叉存储库然后想要对上游存储库进行更改,GitHub for Windows将跟踪上游分支。这意味着当您准备好贡献您的更改时,麻烦就更少了。


(2013年8月) 请注意,使用GitHub客户端(GitHub for WindowsGitHub for Mac),很容易:

https://f.cloud.github.com/assets/432536/943708/46a2f12e-0251-11e3-8c46-b1b6636f23d5.png

https://f.cloud.github.com/assets/432536/1160834/a3bbd0be-1fdf-11e3-90aa-13ee15c6c2d8.png

  

点击它将:

     
      
  • 打开GitHub for Mac或GitHub for Windows,
  •   
  • 克隆存储库(如果没有),
  •   
  • 自动切换到包含更改的分支,
  •   
  • 最后在默认应用程序中打开文件进行编辑。
  •   

所以,如果你不喜欢命令行......你还有其他选择。