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分布式版本控制系统的主要内容,如果未能解决你的问题,请参考以下文章

GitHub介绍

GitHub介绍

如何管理在每个 git 版本中添加私有代码片段?

分布式版本控制系统——Git

GIT分布式版本控制系统使用教程

分布式版本控制系统——Git详解