||
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
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-26 22:55
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社