培训材料
Git安装
主流系统安装参考如下:
- linux:
Debian或Ubuntu:sudo apt-get install git
Centos: sudo yum install git - Windows/ macOS :
下载地址:https://git-scm.com/downloads
其他机器或系统版本可参考官网 Git安装
账号配置
配置全局统一的账号
配置全局的name和email,参照你创建的工程Git global setup
方法一
1 | git config --global user.name "liubo4" #存储账号 |
配置多个账号
有时候,由于各种原因(需要同时使用多个仓库平台,例如:github存放一些个人代码和企业gitlab存放公司业务代码),因此经常会遇到我们需要同时访问多个git托管平台。这时候密钥的优势就体现出来,可以自动通过不同的域名(IP)调取对应的密钥进行数据的访问,极大的提高我们的效率。
首先针对我们每个不同的托管平台账号生成各自的密钥信息。以gitlab & github为例。
1
2
3ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitlab -C "gitlab@account"
ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C "github@account"生成密钥后,在密钥存储目录创建~/.ssh/config文件并进行相关信息的记录,config文件格式如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17github
host 与 hostname 需要相同
Host github.com
HostName github.com
你的github账号
User github@account
github对应的rsa秘钥文件
IdentityFile ~/.ssh/id_rsa_github
gitlab
host 与 hostname 需要相同
Host gitlab.genomics.cn
HostName gitlab.genomics.cn
你的gitlab账号
User gitlab@account
gitlab对应的rsa秘钥文件
IdentityFile ~/.ssh/id_rsa_gitlab
完成上述步骤后,分别将不同托管平台对应生成的秘钥文件信息添加到对应平台中,例如:
gitlab中添加方式: Edit profile ==> SSH key ==> Add an SSH key ;
github中添加方式:Settings ==> SSH and GPG keys ==> New SSH key。
然后就可以直接对多个不同托管平台的数据进行操作,而不用每个仓库单独配置账号和权限了。
更多的关联配置参考文章《git多账号多仓库的配置》
基本知识
Git的4个结构区域
git的整体工作结构区域分为如下4个区域类型
- 工作区:项目的工作目录
- 暂存区:修改的文件会暂时存储在该区域,也叫index区
- 本地仓库:即隐藏目录 .git,是 Git 的版本库
- 远程仓库:即常说的github,gitlab,可在线获取
Git文件的4种基本状态
- 未追踪(untracked)
文件已经在文件夹中,但没有加入git库,也不参与版本控制 - 已修改(modified)
已修改表示修改了文件,但还没保存到本地git仓库中 - 已暂存(staged)
已暂存表示对一个已修改的文件的当前版本做了标记,使之包含在下次提交的快照中。 - 已提交(committed)
已提交表示数据已经安全的保存在本地git仓库中。
Git的常见配置文件
忽略文件(.gitignore)
当不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件时,可以使用“.gitignore”文件进行标识
“.gitignore”文件规则:
- 忽略文件中的空行或以井号(#)开始的行。
- 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
eg:1
2
3
4
5#为注释
*.txt #忽略所有.txt结尾的文件
!lib.txt #lib.txt除外
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc目录下“.txt”为后缀的文件
如果文件已经被追踪,在 .gitignore
中添加后,需要清除一下此文件的 git 缓存,git rm -r --cached
文件名, 然后再进行 commit和 push即可。
大文件管理
通过使用 git lfs 进行流程中大文件的管理,需要提前安装 1.8.5以上版本的git 。
参考文档
git lfs下载安装
下载 git-lfs-linux-386-v2.10.0.tar.gz 拷贝至集群。
1 | tar -zxvf git-lfs-linux-386-v2.10.0.tar.gz |