如何向GitHub贡献代码

前提条件

创建GitHub账号,邮箱激活,安装GitBash(Windows系统)。

如果还没提交过代码,需要设置Git user,向GitHub输入SSH Key;如果已经向GitHub提交过代码的,可跳过这两个步骤,直接进入创建GitHub仓库一节。

设置Git user

在Bash shell中(Windows则用GitBash),设置你的git用户:

$ git config --global user.name "WenzheLiu"
$ git config --global user.email liuwenzhe2008@qq.com

Git命令太多,记不了那么多怎么办?不用担心,Eclipse 4.x自带了Git插件,即EGit(老版本的Eclipse没有的话也可以安装下),它提供GUI帮助我们简化Git操作,并提供很好的视图。

同样的,使用EGit也需要设置user,在Window->Preferences中设置一下:

这里写图片描述

输入SSH Key

想要往GitHub提交代码(或其他文件),需要建立SSH通道,让GitHub认识你,信任你。

在Bash shell中,输入

$ ssh-keygen -C liuwenzhe2008@qq.com -t rsa

读者可以将我的邮箱换成你在GitHub注册时绑定的邮箱即可。

运行上面的命令,会在${user home}/.ssh/目录下生成两个文件:id_rsaid_rsa.pub。命令的输出的信息可以证实这一点:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
... (省略)

打开id_rsa.pub文件,将其内容全部复制到剪贴板中。

然后,在GitHub网上,进入Settings,在SSH页面下:

这里写图片描述

点击New SSH Key按钮,title 可以随便写,key就粘贴id_rsa.pub文件的内容:

这里写图片描述

在命令行中,可以输入如下命令测试一下是否成功:

$ ssh -v git@github.com

创建仓库

仓库(Repository)是我们代码要提交的地方,需要在GitHub上创建。

这里写图片描述

这里写图片描述

用Git关联代码

Git关联代码,用命令行的方式,是在代码根路径下,输入:

$ git init

命令执行后,会在当前目录下生成一个.git的子文件夹,它是Git的本地仓库,所有git信息都会存在里面。可以用ls -a来验证:

$ ls -a
./  ../  .classpath  .git/ (省略其他)
$ ls -a .git
./  ../  branches/  COMMIT_EDITMSG  config  HEAD  hooks/  index  logs/  objects/  refs/

当然,有EGit的帮助,我们可以懒得去记忆这些命令,下面的操作达到一样的效果,而且还能被Eclipse支持:

这里写图片描述

这里写图片描述

过滤掉不需要提交的文件(夹)

有些文件(夹)我们不想提交,可以创建文件.gitignore来记录。当然,有了EGit,你也可以不用知道这一点。比如,我们不想要提交target目录,因为它是编译生成出来的。在Eclipse中,右击target目录,如下操作:

这里写图片描述

这时会生成.gitignore文件,内容如下:

$ cat .gitignore
/target/

一般Eclipse下的Java工程还会有一个.settings目录是我们不需要提交的,可以编辑.gitignore文件加入信息,改完之后如下:

$ cat .gitignore
/target/
/.settings/

提交到本地仓库

关联上Git之后,git本地仓库还没有记录代码的信息,因为还没有提交到本地仓库。这时,工程标示为NO_HEAD,而每个尚未提交的文件都有个问号(?)的标示,如下图。

这里写图片描述

我们需要把代码提交到本地仓库(即.git目录),命令行的方法是commit命令:

$ git commit -m "update doc and read me"

其实,有了EGit的帮助,我们也无需去记忆这些命令。如下图:

这里写图片描述

这里写图片描述

点击Commit按钮,将提交到本地仓库。提交之后,NO_HEAD和问号都没有了,表示已经提交成功。如下图:

这里写图片描述

提交到GitHub远程仓库

提交到本地仓库后,可以提交到GitHub远程仓库。

当我们在GitHub页面创建完仓库后,GitHub会在页面上显示一些命令帮助信息,比如创建LICENSE文件等:

这里写图片描述

我们可以看到提交到GitHub远程仓库的命令行方式:

$ git remote add origin git@github.com:WenzheLiu/WorkRecorder.git
$ git push -u origin master

命令太复杂了,还是记不住。这种机械记忆本应该就是计算机给我们做好的,人无需去记忆,人应该把精力放在更需要创造性的地方,不是吗?

不怕,EGit就是这样一个好助手!如下操作可以提交到GitHub远程仓库:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

然后就是等待上传完成:

这里写图片描述

上传完成了:

这里写图片描述

另外,我们也可以在做本地提交的时候同时提交到GitHub远程仓库。还记得前面本地提交的界面吗?除了Commit按钮外,还有一个按钮Commit and Push,它是两个步骤合在一起做了,简单方便。

检查一下我们的成果,在GitHub网站能看到提交的文件了,哈哈!

这里写图片描述

随便提一下,本文的图片示例直播了我对自己开发的WorkRecorder工具的开源过程,而这些图片都是由该工具自己所录制与抓取的,感谢WorkRecorder!

——- 本博客所有内容均为原创,转载请注明作者和出处 ——–

作者:刘文哲

联系方式:liuwenzhe2008@qq.com

博客:http://blog.csdn.net/liuwenzhe2008

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值