Git分布式版本控制系统
Posted comprehensive
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git分布式版本控制系统相关的知识,希望对你有一定的参考价值。
使用Git服务的时候,要知道三种重要模式,分别是:
已提交(committed):表示数据文件已经顺利提交到Git数据库中。
已修改(modified):表示数据文件已经被修改,但未被保存到Git数据库中。
已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git数据库中。
1、首先配置你的个人用户和电子邮件,设置默认的文本编辑器;
[root@web01 ~]# git config --global user.name "web01" [root@web01 ~]# git config --global user.email "root@web01.com" [root@web01 ~]# git config --global core.editor vim [root@web01 ~]# git config --list
2、提交数据
[root@web01 ~]# mkdir linux [root@web01 ~]# cd linux [root@web01 ~]# git init #初始化git [root@web01 ~]# echo "first git repository" >read.txt [root@web01 ~]# git add read.txt #将该文件添加到暂存区 [root@web01 ~]# git commit -m "add the read file" #将文件提交到Git版本仓库 [root@web01 ~]# git status #当前Git版本仓库的状态:
3、设置忽略目录,把不想上传的文件写入到(工作目录/.gitignore)文件中
[root@web01 linux]# touch git.c #创建文件 [root@web01 linux]# vim .gitignore #设置忽略文件 git.c [root@web01 linux]# git add . #添加所有文件至暂存区 [root@web01 linux]# git commit -m "add the .gitignore file" #提交至版本库 如果有多个文件传至版本库中,可采用-a参数,这个就跳过暂存步骤,直接提交到版本库中 [root@web01 linux]# echo "Modified again" >>read.txt [root@web01 linux]# git commit -a -m "Modified again" 如果想把忽略文件git.c也提交上去,可以加-f参数强制提交 [root@web01 linux]# git add -f git.c #强制提交文件 [root@web01 linux]# git commit -a -m "Second modified again" #再一次提交至版本库
4、数据移除( rm -f )
[root@web01 linux]# touch database #创建一个新的文件 [root@web01 linux]# git add database #添加至暂存区 [root@web01 linux]# git status #查看已经添加database文件; [root@web01 linux]# git rm --cached database #利用cached参数,只是在暂存区移除,真实数据不会删除 [root@web01 linux]# ls #查看文件并没有删除 database git.c read.txt 而如果我们想将文件数据从Git暂存区和工作目录中一起删除,可以这样操作: [root@web01 linux]# git add . #添加所有文件至暂存区 [root@web01 linux]# git rm -f database #删除文件 [root@web01 linux]# ls #查看已经删除文件 git.c read.txt
5、数据移动 ( git mv )
[root@web01 linux]# git mv read.txt introduction.txt #重命名 [root@web01 linux]# git commit -m "change name" #提交文件到Git版本仓库
6、查看历史记录(git log )
[root@web01 linux]# git log #查看所有的历史记录 [root@web01 linux]# git log -2 #查看近两条历史记录 [root@web01 linux]# git log -p -2 # -p参数来展开显示每次提交的内容差异 [root@web01 linux]# git log --stat -2 #--stat参数来简要的显示数据增改行数 [root@web01 linux]# git log --pretty=oneline #--pretty参数显示每行一条提交记录 [root@web01 linux]# git log --pretty=fuller -2 #以更详细的模式输出最近两次的历史记录
还可以使用format参数来指定具体的输出格式,这样非常便于后期编程的提取分析哦,常用的格式有:
%s | 提交说明 |
%cd | 提交日期 |
%an | 作者的名字 |
%cn | 提交者的姓名 |
%ce | 提交者的电子邮件 |
%H | 提交对象的完整SHA-1哈希字串 |
%h | 提交对象的简短SHA-1哈希字串 |
%T | 树对象的完整SHA-1哈希字串 |
%t | 树对象的简短SHA-1哈希字串 |
%P | 父对象的完整SHA-1哈希字串 |
%p | 父对象的简短SHA-1哈希字串 |
%ad | 作者的修订时间 |
查看当前所有提交记录的简短SHA-1哈希字串与提交者的姓名:
[root@web01 linux]# git log --pretty=format:"%h %cn"
7、数据还原
[root@web01 linux]# git log --pretty=oneline #查看历史记录 还原版本使用命令(git reset),而上一个提交版本会叫HEAD^,上上一个版本则会叫做HEAD^^,用HEAD~5来表示往上数第五个提交版本。 [root@web01 linux]# git reset --hard HEAD^ #还原到上一个版本; [root@web01 linux]# git log --pretty=oneline #查看历史记录已经更新到上个版本; 查看所有历史版本,包括已经还原过的版本;用命令(git reflog) [root@web01 linux]# git reflog [root@web01 linux]# git reset --hard d990d1 #另外可通过SHA-1值进行还原,SHA-1值没有必要写全,Git会自动去匹配; 还可以使用checkout,还原最近的一条数据; checkou规则是如果暂存区中有该文件,则直接从暂存区恢复,如果暂存区没有该文件,则将还原成最近一次文件提交时的快照 [root@web01 linux]# git checkout -- read.txt
8、标签管理
以上是关于Git分布式版本控制系统的主要内容,如果未能解决你的问题,请参考以下文章