使用github进行项目开发与程序维护

1. github简介

我对GitHub不甚了解。现在很多生物信息学软件的Paper中都提供了软件的Github网址。

个人理解,GitHub能很方便用于开源软件的存储和代码维护。软件开发人员在Github网站注册一个账户后,相当于在Github服务器上有了账户和密码;开发某个项目的软件后,可以将软件源代码通过该账号和密码上传到Github服务器上;每次软件维护和代码上传,都会详细记录更新的内容;其它人可以将代码下载,并进行修改,形成软件的分支。

2. 在Github软件上注册用户

Github注册页面注册一个账户,Username: train-chenlianfu;Email address:910432211@qq.com;Password: train123456;再点击Create an account,完成注册。

3. 安装git软件

在CentOS系统上,虽然自带git软件,但是推荐使用高版本git,否则可能版本过低,导致不能兼容https而不能使用。

下载并安装最新版本git软件:

$ wget https://github.com/git/git/archive/v2.17.0.tar.gz -O git-v2.17.0.tar.gz
$ tar zxf git-v2.17.0.tar.gz 
$ cd git-2.17.0/
$ make configure
$ ./configure --prefix=/opt/sysoft/git-2.17.0
$ make -j 24
$ make install
$ echo 'PATH=/opt/sysoft/git-2.17.0/bin/:$PATH' >> ~/.bashrc
$ source ~/.bashrc
$ cd .. && rm -rf git-2.17.0

4. 在GitHub创建一个项目

新注册账号会弹出需要验证邮箱地址的信息,在邮箱收件箱中点击链接,进入GitHub主页;

点击GitHub主页右上角的加号“+”,弹出一个菜单,点击New repository;

在Repository name栏输入一个软件名称,例如:blast_tools;

再勾选Initialize this repository with a README,表示给本项目直接生成一个文件README.md;

在Add a license下拉菜单中选择GNU General Public License v3.0,表示本项目是开源项目,软件中自动增加一个文件LICENSE;

点击Create repository,创建项目。

5. 使用git管理代码的上传和更新

从GitHub上下载blast_tools软件:

$ git clone https://github.com/train-chenlianfu/blast_tools.git
$ cd blast_tools/
$ ls
LICENSE  README.md

在当前工作目录下生成文件夹blast_tools,该文件夹中包含两个文件:LICENSE和README.md。
其中README.md中仅包含一行内容:“# blast_tools”;该文件内容能直接显示在GitHub网站的本项目主页上;#号表示该行使用加粗加黑加大字体显示。

其实,在当前文件夹下,还存在一个隐藏文件夹.git,该文件夹

在blast_tools/文件夹中写软件代码,例如编写了perl程序blast.pl,并修改了README.md文件内容。

点击GitHub主页最右上角的用户图标,在下拉菜单中选择Settings,进入用户设置;在左边一栏中点击SSH and GPG keys;再点击New SSH key;在Title一栏中随意输入字符train_ssh;再在Key一栏中输入OpenSSH的公钥(点击进入本博客OpenSSH公钥生成方法的介绍文章);最后点击Add SSH key;添加公钥后,则可以将本地的软件代码通过git命令同步到GitHub网址上。

将本地修改或增加的文件上传到GitHub上:

$ git config user.email "910432211@qq.com"
$ git config user.name "train-chenlianfu"
  以上两行命令设置该项目对应的GitHub项目的用户名和邮箱地址,用于修改.git/config配置文件内容。

$ git add *
  对当前工作目录中的所有文件提出更改。当然git add命令后可以接指定的多个文件或文件夹。

$ git commit -m "first submit"
  提交本次改动,本次改动的所有文件,在GitHub中全部被批注成"first submmit"。
  程序会自动检测有有多少个文件有改动,插入多少字符,删除多少字符等。这些改动信息会存于本地.git文件夹中。

$ git push origin master
  将改动信息和文件推送到origin(GitHub项目)的master分支(一个项目可能有多个分支,此处将本地改动推送到主分支)上。可能会弹出界面需要输入用户名和密码。
  origin是一个远程项目,在.git/config配置文件中有定义origin指向了GitHub的网址https://github.com/train-chenlianfu/blast_tools.git。 

先写到这儿,后续分支什么的还没怎么理解。以后需要的时候再了解。

发表评论

电子邮件地址不会被公开。 必填项已用*标注