我想为GitHub中的某个项目做出贡献。我应该 fork 吗? 分支吗?建议什么以及如何做?
答案 0 :(得分:178)
理想情况下:
如果是新功能请求,请不要先启动编码。请记得发布问题以讨论新功能。
如果该功能得到充分讨论且有一些+1或项目所有者批准了该功能,请将问题分配给自己,然后执行上述步骤。
有些项目不会使用拉取请求系统。请与作者或邮件列表一起查看将代码重新放回项目的最佳方法。
答案 1 :(得分:30)
要添加到Yann's answer,一旦你分叉了一个项目,你就可以在你想要的任何一个分支中开发(一个新的,或原始项目中的一个)
请记住:
origin
”,因为origin
将是您自己的回购,叉子的结果)答案 2 :(得分:15)
要添加Yan和VonC的答案,这是github自己的一个很好的资源:http://help.github.com/forking/
另外请务必查看“合作”标题下的右侧边栏。
答案 3 :(得分:10)
有一个很棒的Railscast视频here可以引导您完成整个过程。它还有一些很好的技巧,比如显示如何确定在贡献时可能要使用哪个分支,使用测试,子模块等。
虽然此截屏视频主要关注Rails开发人员,但大多数信息对于任何开源项目都有效。
答案 4 :(得分:4)
Github有很多方式与项目合作。大多数项目使用的模型是拉取请求模型。我已经启动了一个项目来帮助人们制作他们的第一个GitHub拉取请求。您可以参加make your first PR here
的动手教程工作流程很简单
git push origin branch-name
Compare and pull request
按钮答案 5 :(得分:3)
lornajane有一篇博文,很好地解释了这个过程: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
答案 6 :(得分:1)
我建议以下工作流程:
克隆(在命令行中)
git clone <url-from-your-workspace>
输入刚刚创建的目录,然后创建一个分支
cd <directory>
git checkout -b <branchname>
现在进行更改
您可以在每次更改后创建一个或多个提交:
commit -a
完成后,推送您的更改
git push origin <branch>
在命令行中,您应该see a URL to create the PR。访问URL,然后单击按钮创建PR。
如果没有,请在浏览器中访问存储库,它将为您提供用于创建拉取请求的按钮
就是这样。
因此,基本上,您将存储库分支到了工作区,创建了一个新分支并推送了该新分支。
如果以后再从同一克隆存储库中获取更多PR,则应在创建另一个PR的另一个分支之前进行同步(从原始存储库中获取最新更改):
git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master
这里提供了这些建议,以免您将工作放入不会合并的PR中。如果项目中有活动并且PR被合并,这是一个好兆头。如果有贡献准则,请遵循它们。
永远保持礼貌。请记住,项目的维护者绝没有义务合并您的PR。您有可以添加到项目中的有价值的东西吗?