我们一直用 GitHub 作为免费的远程仓库,如果是个人的开源项目,放到 GitHub 上是完全没有问题的。其实 GitHub 还是一个开源协作社区,通过 GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。
在 GitHub 出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个 bug,即使能改掉 bug,也只能把 diff 文件用邮件发过去,很不方便。
但是在 GitHub 上,利用 Git 极其强大的克隆和分支功能,广大人民群众真正可以第一次自由参与各种开源项目了。
如何参与一个开源项目呢?我们这套教程就是开源的,它的Markdown源代码托管在GIthub上,在添加远程仓库时,我们已经注册了一个Github账号。登录这个账号后,我们可以找到这套教程的项目主页,在页面的右上角,有一个·Fork
按钮。这个按钮的作用是,将当前这个项目在你的账号下创建一份拷贝。点一下你就在自己的账号下复制了一份本教程的仓库。然后,再从自己的账号下找到这个仓库。
从仓库页面上,可以找到一个醒目的Downloads and Clone
的按钮,点一下就可以看到这个仓库的链接,通过这个链接,我们可以从远程仓库中将这份教程的源代码clone
下来:
git clone [email protected]:charliej107/gitlearn.git
一定要从自己的账号下 clone 仓库,这样你才能推送修改。如果从这篇教程的作者的仓库地址 [email protected]:charliej107/gitlearn.git
克隆,因为没有权限,你将不能推送修改。
一定要从自己的账号下克隆仓库,这样你才能够推送修改。如果从这套教程原本的作者(也就是我)的仓库下直接克隆,因为没有权限,你只能在本地操作,不能推送修改。
这篇教程的官方仓库charliej107/gitlearn
、你在 GitHub 上克隆的仓库 my/gitlearn
,以及你自己克隆到本地电脑的仓库,他们的关系就像下图显示的那样:
如果你想给这个教程新增一个内容,或者修改这篇教程中的错误,立刻就可以开始干活儿,打开自己的编辑器,按照之前的套路,修改后将改动推送到自己的仓库中。
如果你希望你的修改能够被这篇教程的作者(也就是我)接受,可以在Github上发起一个pull request
(拉取请求)。我接受到这个修改后会审阅你的改动内容。如果我觉得你的改动看起来很有道理,我就会接受你的pull request
,并将其合并到这篇教程的源代码中。
如果你没有对这篇教程的修改意见,但是又想尝试一下pull requst
,可以在这篇教程中的心得交流体会的文件夹中跟帖加上自己的心得体会,然后发一个Pull request
给我。
- 在 GitHub 上,可以任意 Fork 开源仓库;
- 自己拥有 Fork 后的仓库的读写权限;
- 可以推送 pull request 给官方仓库来贡献代码。