如果这是一个新的功能请求,请勿立即开始编码。请记得发布问题以讨论新功能。
如果该功能经过充分讨论并且有一些+1或项目所有者批准了它,请将问题分配给自己,然后执行上述步骤。
有些项目不会使用pull request系统。请与作者或邮件列表联系,询问将代码合并到项目中的最佳方式。
除了 Yann 的回答,一旦您 fork 了一个项目,您可以在任何分支中进行开发(新的分支或原始项目的分支)。
请记住:
origin
”不同,因为 origin
将成为您自己的仓库,即 fork 的结果)。git checkout master;
git pull;
同样的操作也会在开发分支上执行(我的功能分支最初是合并到开发分支上的)。
在阅读了“pull vs pull --rebase”和“merge vs rebase”之后,我能想到的区别只是平面历史。还有其他更深层次的区别吗? - linuxbandit除了Yan和VonC的回答之外,这是github自己提供的一个很好的资源:http://help.github.com/forking/
还要确保在右侧边栏下方的“协作”标题下查看。
这里有一个很棒的Railscast视频(链接),向您介绍了贡献开源项目的过程。此外,它还提供了许多好的技巧,比如如何确定希望参与的分支、使用测试、子模块等。
虽然这个视频主要是针对Rails开发人员的,但大部分信息对于贡献任何开源项目都是有效的。
git push origin branch-name
5. 转到您在GitHub上的fork中查看“比较和拉取请求”按钮
6. 点击它并提供必要的细节lornajane有一篇博客文章很好地解释了这个过程: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
我建议以下工作流程:
在GitHub网页界面上,点击“Fork”按钮来fork该仓库。
在你的fork仓库中,复制URL。
在命令行中进行clone操作。
git clone <来自你的Workspace的URL>
进入刚刚创建的目录并创建一个分支。
cd <directory>
git checkout -b <branchname>
现在进行更改。
每次更改后,你可以创建一个或多个commits:
git add .;
git commit
完成后,推送更改。
git push origin <branch>
在命令行中,你应该看到一个URL用于创建PR。访问该URL并单击按钮以创建PR。
如果没有,可以在浏览器中访问该仓库,并提供一个用于创建pull request的按钮。
就是这样。
因此,你将该仓库fork到你的Workspace中,创建一个新分支并推送该新分支。
如果以后你从同一克隆的repo中进行了更多PR,则在为另一个PR创建另一个分支之前,应先同步(获取原始仓库的最新更改):
git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master
这些建议是为了帮助您避免在一个不会合并 PR 的项目中浪费工作。如果项目有活动并且合并了 PR,则表示情况良好。如果有贡献指南,请务必遵循。
始终要有礼貌。请记住,该项目的维护者没有义务合并您的 PR。您有有价值的内容要添加到该项目吗?
Translated content in Chinese: