张金龙的博客分享 http://blog.sciencenet.cn/u/zjlcas 物种适应性、分布与进化

博文

用git在github上托管代码

已有 4990 次阅读 2015-5-18 00:31 |个人分类:软件介绍|系统分类:科研笔记

git的基本使用方法


git是版本控制工具,主要用来监测和记录纯文本文件所做的更改。git可以将所做的修改远程提交到git repository (如 github) 。 同时, 每一个git用户可以设定多个分支。 其中master分支, 一般作为软件的正式发布版本。 以其他名字命名的分支, 可以进行debug。 不同的分支之间, 可以合并。 而每一次提交修改, 都是在本地的repository库中进行, 只有在push到远程的repository后, 远程repository才接收到更改的记录, 并作出改变。


这样, 每一个本地的git repository都有关于主干(即对master分支的修改), 以及本地分支(任何一个master以外的分支)的完整记录。 由于修改都是先提交到本地的git数据库中,因此提交修改速度都很快。


本文以 herblabel R程序包为例, 介绍如何使用git, 以及如何将herblabel的源代码托管到github上。


1. 在github上, 创建相应程序包的repository, 如命名为 herblabel

网址为 https://github.com/helixcn/herblabel


若未安装git, 需要在terminal输入 sudo apt-get install git


2. 第一次使用本地版本的git时,需要设定用户名和联系方式

打开 terminal,

git config --global user.name "Jinlong Zhang"

git config --global user.email "jinlongzhang01@gmail.com"


3. 更改 credential helper缓存密码的时间

git config --global credential.helper 'cache --timeout=3600'


4. 在本地/herblabel/文件夹中 创建本地的repository

cd /home/jinlong/git_repositories/github_herblabel/

git init  


5. 在/herblabel/文件夹下, 将herblabel 源代码记录到git库中。

git add *


6. master版本, 即最终发布版本,commit到本地的库中

git commit -m 'initial commit'


7. 推送到github

git push -u origin master  

git会提示输入github的用户名和密码, 输入后, git会自动将master分支上传到服务器。


8. 将master分支推送到github服务器后, 每一次在本地进行修改时,如修整了软件的一个bug, 一般流程如下

(1) 新建一个分支 如 herblabel_dev 命令如下 git checkout -b herblabel_dev

(2) 修改代码, fix the bug

(3)  回到master分支 git checkout master

(4) 将herblabel_dev所做的修改合并到master中: git merge herblabel_dev

(5) 提交所做的修改 git add *

(6) 记录所做的修改 git commit -m "XX bug fixed"

(7) 提交所做的修改到github服务器 git push,

########################################

####### 本地使用分支 Branch ################

6.  创建一个新的分支(branch),将其作为活动分支(checkout),然后就可以编辑、载入和提交新的快照。

## 创建新的分支herblabel_dev

git branch herblabel_dev


7. ## 将herblabel_dev分支作为工作分支

git checkout herblabel_dev


8. ## 继续编辑源代码,git会将改动自动记录到herblabel_dev分支下


9. ## 查看状态

git status


10.  ## 将进行的修改做详细的记录, 并做记录

git commit -m 'Fix Bug A'


11. ## 转换到master分支, git会自动显示哪些地方做了更改。

$ git checkout master


12. ## 将改动的信息保存到git数据库中, 用log 消息记录

$ git commit -a -m 'change files'


13. ### 将 herblabel_dev分支上的改动,合并到当前分支

git merge herblabel_dev


14. ### 删除这个分支

git branch -d herblabel_dev



如果在本地删除了某文件, 而同时希望在github上删除, 则应该先commit

git commit -a -m "A file was deleted"

之后push

git push


###########################

放弃本地所做的所有修改比如master分支:

git reset --hard origin/master


##################################################################

########## 可以用 gitg 软件查看所做的更改以及分支 ###################

##################################################################


更多git的图形用户界面GUI参见 https://git-scm.com/downloads/guis




https://blog.sciencenet.cn/blog-255662-890909.html

上一篇:R中调用FORTRAN的两种方式
下一篇:Linux 使用Geany编写并调试R脚本
收藏 IP: 203.210.6.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-26 22:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部