如何在GitHub中贡献其他代码?

时间:2010-12-08 06:31:11

标签: git open-source github

我想为GitHub中的某个项目做出贡献。我应该 fork 吗? 分支吗?建议什么以及如何做?

7 个答案:

答案 0 :(得分:178)

理想情况下:

  1. Fork项目
  2. 对存储库进行一次或多次评论和清理提交。如果要修改多个零件或特征,则可以在此处创建新分支。
  3. 在github的网络界面中执行pull request
  4. 如果是新功能请求,请不要先启动编码。请记得发布问题以讨论新功能。

    如果该功能得到充分讨论且有一些+1或项目所有者批准了该功能,请将问题分配给自己,然后执行上述步骤。

    有些项目不会使用拉取请求系统。请与作者或邮件列表一起查看将代码重新放回项目的最佳方法。

答案 1 :(得分:30)

要添加到Yann's answer,一旦你分叉了一个项目,你就可以在你想要的任何一个分支中开发(一个新的,或原始项目中的一个)

请记住:

答案 2 :(得分:15)

要添加Yan和VonC的答案,这是github自己的一个很好的资源:http://help.github.com/forking/

另外请务必查看“合作”标题下的右侧边栏。

答案 3 :(得分:10)

有一个很棒的Railscast视频here可以引导您完成整个过程。它还有一些很好的技巧,比如显示如何确定在贡献时可能要使用哪个分支,使用测试,子模块等。

虽然此截屏视频主要关注Rails开发人员,但大多数信息对于任何开源项目都有效。

答案 4 :(得分:4)

Github有很多方式与项目合作。大多数项目使用的模型是拉取请求模型。我已经启动了一个项目来帮助人们制作他们的第一个GitHub拉取请求。您可以参加make your first PR here

的动手教程

工作流程很简单

  • 在github中分享回购
  • 将回购邮件克隆到您的计算机
  • 制作分支并进行必要的更改
  • 在GitHub git push origin branch-name
  • 上推送您的更改
  • 转到GitHub上的分支,查看Compare and pull request按钮
  • 点击它并提供必要的详细信息

答案 5 :(得分:3)

lornajane有一篇博文,很好地解释了这个过程: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github

答案 6 :(得分:1)

技术工作流程

我建议以下工作流程:

  1. 分叉存储库(通过GitHub Web界面:“ Fork”按钮)
  2. 在分支的存储库中,复制URL
  3. 克隆(在命令行中)

    git clone <url-from-your-workspace>

  4. 输入刚刚创建的目录,然后创建一个分支

    cd <directory> git checkout -b <branchname>

  5. 现在进行更改

  6. 您可以在每次更改后创建一个或多个提交:

    commit -a

  7. 完成后,推送您的更改

    git push origin <branch>

  8. 在命令行中,您应该see a URL to create the PR。访问URL,然后单击按钮创建PR。

  9. 如果没有,请在浏览器中访问存储库,它将为您提供用于创建拉取请求的按钮

就是这样。

因此,基本上,您将存储库分支到了工作区,创建了一个新分支并推送了该新分支。

如果以后再从同一克隆存储库中获取更多PR,则应在创建另一个PR的另一个分支之前进行同步(从原始存储库中获取最新更改):

git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master

其他注意事项:

  • 该项目可能有贡献准则:查找文件CONTRIBUTING.rst或.md
  • 您可能要遵循该项目的编码准则
  • 您可能想首先将您的想法概述为问题
  • 您可能希望查看项目的“拉取请求”选项卡,并检查是否存在打开的PR,合并的PR

这里提供了这些建议,以免您将工作放入不会合并的PR中。如果项目中有活动并且PR被合并,这是一个好兆头。如果有贡献准则,请遵循它们。

永远保持礼貌。请记住,项目的维护者绝没有义务合并您的PR。您有可以添加到项目中的有价值的东西吗?