我想为GitHub的某个项目做贡献。我应该用叉子吗?分支吗?有什么建议,怎么做?
当前回答
Lornajane有一篇博客文章很好地解释了这个过程: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
其他回答
Lornajane有一篇博客文章很好地解释了这个过程: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
为了补充Yan和VonC的答案,这是github自己的一个很好的资源:http://help.github.com/forking/
另外,请务必查看右侧栏“协作”标题下的内容。
技术工作流程
我建议采用以下工作流程:
Fork the repository (via GitHub web interface: "Fork" button) In your forked repository, copy the URL Clone (in the command line) git clone <url-from-your-workspace> Enter the directory, that just got created, and create a branch cd <directory> git checkout -b <branchname> Now make your changes You can create one or more commits after each change: git add .; git commit When done, push your changes git push origin <branch> In your command line, you should see a URL to create the PR. Visit the URL and click the button to create a PR. If not, visit the repository in the browser and it will offer you a button for creating the pull request
就是这样。
因此,基本上,您将存储库分叉到您的工作区,创建一个新分支并推送该新分支。
如果你以后从同一个克隆的repo中创建了更多的PR,你应该在为另一个PR创建另一个分支之前进行同步(从原始存储库中获取最新的更改):
git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master
其他注意事项:
项目可能有贡献指南:寻找一个文件贡献。RST或。md 您可能需要遵循项目的编码指南 你可能想先把你的想法提纲出来 你可以查看项目的Pull Requests选项卡,检查是否有开放的PR,合并的PR
这些建议可以帮助你避免将工作放入无法合并的PR中。如果项目中的活动和PR被合并,这是一个好迹象。如果有捐款指南,请遵循它们。
永远要有礼貌。请记住,项目的维护者没有义务合并您的PR。您是否有一些有价值的东西要添加到项目中?
这里有一个很棒的Railscast视频,它会带你走过整个过程。它还提供了许多不错的技巧,比如展示了如何确定您在贡献时可能想要在哪个分支上工作、使用测试、子模块等。
虽然本文主要针对Rails开发人员,但大部分信息对于任何开源项目都是有效的。
理想情况下你:
项目分叉 向存储库提交一个或多个注释良好且干净的提交。如果要修改多个部件或特性,可以在这里创建一个新分支。 在github的web界面中执行拉请求。
如果是一个新的Feature请求,不要先开始编码。记得发表一篇文章来讨论新功能。
如果这个特性讨论得很好,并且有一些+1,或者项目所有者批准了它,把这个问题分配给你自己,然后执行上面的步骤。
有些项目不会使用拉请求系统。请与作者或邮件列表联系,了解将代码重新放入项目的最佳方式。
推荐文章
- 差异语法突出显示在Github Markdown
- /dist目录在开源项目中的意义是什么?
- Xcode 6 gitignore文件应该包括什么?
- 我如何从现有回购的分支创建一个新的GitHub回购?
- 如何将Git分支移到它自己的存储库中?
- 如何禁用Git凭证管理器的Windows?
- Git 拉取与 Git 变基
- 在git中压缩提交是什么意思?
- 在GIT中合并2个分支
- git标签也会被推送吗?
- 嵌套的Git存储库?
- Git bash错误:无法fork子进程:没有可用的终端(-1)
- 有没有办法在SourceTree中获得两个分支的视觉差异?
- 如何在GitHub上找到存储库项目的创建日期?
- Git标记是否只应用于当前分支?