git和github是好东西每个程序员都需要,然而好东西不会用根本感受不到它为什么好,所以这篇文章会教你如何利用这些好东西参与开源项目。
使用步骤
注册账号
拥有账号是一切的开始,所以你首先得去github官网注册一个账号。创建ssh keys
ssh是一种网络协议,用于计算机之间的加密登录。对于github来说ssh key相当于是一个身份认证的东西,它可以证明你所发送的请求是你本人发送的,而不是其他人。
在github添加ssh key之前你需要检查本机是否存在ssh keys,在终端内输入ls -al ~/.ssh
如果存在文件id_rsa 或 id_rsa.pub,则可直接进入第3步,否则只有老老实实创建ssh keys
在控制台输入以下命令ssh-keygen -t rsa -C "your_email@example.com"
随后一切只需要按回车一路默认值便可创建成功,创建成功后我们的计算机中会出现一个.ssh文件,该文件在linux系统下是隐藏的在home目录下按ctrl+h便可取消隐藏,在该文件夹内存在id_rsa 与 id_rsa.pub两个文件。为自己的账号绑定ssh
在github创建账号并登录后,我们会进入该页面
点击右上角的倒三角并选择Settings进入设置页面
在左侧菜单栏找到SSH and GPG keys选项,点击进入SSH设置页面
点击右上角的new ssh key,在页面中会出现一个表单,这时只需要把id_rsa.pub文件内的内容全部复制到表单的key输入框内便可点击add ssh key便可完成添加。寻找一个心仪的开源项目
一切准备工作都已经做好了,剩下的便是寻找你所心仪的开源项目了,这里以国内最大的前端组织所维护的月刊为例子。
在该页面右上角处点击fork,在自己的repositories(仓库)内复制一份代码,然后回到个人主页找到自己fork的项目,点击clone or download,复制该项目的地址。
将远程仓库内的代码克隆到本地
在本地创建一个文件夹,并打开终端,用cd命令行将路径转到目标文件夹下,然后利用git clone copyaddress
将代码克隆到本地(copyaddress是第四步复制的地址)。
添加原项目地址作为远程仓库
为了便于管理,Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名。
复制原作者项目上的地址,并在刚才的终端内输入git remote add upstream originAddress
其中originAddress为原作者的地址,upstream只是一个名字而已你要是愿意也可以把它改为其他名字,
在添加完成后你可以运行git remote -v
可以查看所有远程主机修改代码并提交
首先确保本地代码的版本与远程仓库upstream相同git fetch upstream git merge upstream/master
假如说你在本地代码中增加了一些修改想要提交到仓库里,那便需要git add
、git commit
与git push
来帮忙了。
图片中的最后一个命令行push错地方了,应该往origin远程仓库(自己的仓库)push,毕竟参与其他人主导的开源项目也得讲究礼仪,并不是所有的修改都是符合项目发起者的预期的,一些低质量、不必要的修改对于发起者本人来说是根本没有必要留下的,所以我们得先把修改提交到自己的仓库上,再和原本项目的发起人打声招呼问问‘您看我这改的合不合您心意’,这步骤也就是接下来要说的pull request提交pull request
当我们完成上述步骤后,我们修改的内容也已经被推送到了自己在github上的远程仓库上了,这时我们回到github,点击进入我们的远程仓库
点击New pull request按钮,进入下面的界面
代码区域内有用红色和绿色标出的代码块,红色表示我们修改前的代码,绿色表示我们修改后的代码,当我们确定提交的代码没有问题后,便点击图中绿色的按钮create pull request
在leave a commit区域内填写你所修改内容的注释,便于管理员阅读代码,填写完成后点击绿色按钮create pull request,pr就提交上去了,接下来的事就交给管理员吧。