如何向GitHub贡献代码

    xiaoxiao2025-01-13  7

    前提条件

    创建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_rsa和id_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

    转载请注明原文地址: https://ju.6miu.com/read-1295451.html
    最新回复(0)