Git教程(一)Git的安装部署与本地仓库管理

TangLu 未命名 2019-11-22 4974 0

一、什么是Git

Git是一个版本控制系统。版本控制系统的发展经历了本地版(版本库保存在本地电脑)、集中版本控制系统(版本库保存在一台服务器中,有单点故障风险,断网后无法工作,代表软件是SVN)、分布式版本控制系统(版本库不仅仅在主服务器里有存放,还会在每个客户端存放一套完整备份,即使服务器出了故障,也可以在任一客户端进行恢复,代表软件是Git)。目前最主流好用的Git有以下特点:

1、以快照方式存储整个版本库(SVN是以差异化形式存放数据)。占用存储空间的问题也是经过优化,不会说每一次快照都占用实际大小空间。

2、服务器断网不罢工,客户端可以继续工作

3、杀手锏功能——分支管理,分支切换速度快,几乎瞬间完成


二、Git基本概念与工作流程

Git有一个仓库、两个引用(tag与branch)、三大工作区(工作目录中修改文件,然后把修改的文件进行快照保存到暂存区,最后将暂存区的文件提交到版本库(每个工作区的隐藏目录))。四个对象(commit、tree、blob、tag)的基本概念。


三、Git两种安装方式

1、在CentOS下用yum命令可以直接安装稳定版本,且能自动解决依赖问题

2、源码包编译安装,可以安装最新版本的Git

安装完成后使用git --version查看版本

make configure  #先生成configure文件
 ./configure --prefix=/usr
 make && make install

3、安装Git命令自动补全工具

yum install bash-completion  #实现Git命令的tab自动补全


四、Git常用命令与选项(这些命令需要在工作目录中操作

1、创建仓库

使用git init命令会把当前目录进行仓库初始化,并且生成隐藏目录.git,这个就是git的版本库目录,里面会有配置、分支、钩子等其他相关文件

mkdir /git && cd /git   #创建仓库的工作目录
git init


2、配置用户信息

使用git config为用户信息做配置,通常指需要配置你是谁、你的邮箱是什么就可以了。操作后会在当前用户的家目录中生成一个配置文件.gitconfig,这样上传了数据别人才知道是谁做的操作。该命令还有三个子选项用于指定作用域,当配置文件冲突时作用范围越小的越优先,如果发现信息不对的话,先从版本库中的config文件进行检查

#git config --global  #作用域是全局
#git config --system  #作用域是所有用户的配置文件
#git config  #作用域仅是本仓库配置文件
git config --global user.name "tanglu"
git config --global user.email "13841276@qq.com"
git config --global color.ui treu  #配置不同类型文件的颜色差异,可不配


gitconfig1.png


五、Git本地文件管理常用命令

1、进入git仓库后,使用git status命令可以查看当前目录中文件的状态没有添加到仓库的文件都会提示Untracked files


2、使用git add与git commit命令可以添加文件并提交到git版本库

cd /git  #进入建立的工作仓库目录
touch readme.txt  #创建文件用于测试
git add readme.txt    #保存指定文件到暂存区,如果是要保存当前目录所有文件的话可以用.表示。
#git rm -cached readme.txt  #从暂存区删除,也就是取消上一步的操作
git commit -m "add readme.txt"  #正式提交文件到版本库  
git status  #在工作过程中可以用这个命令追踪工作区域中的文件是否有保存,红色的话代表未保存。工作完毕后要保持工作区最后是clean的状态


gitconfig2.png


3、使用git rm命令删除文件。删除后仍然需要进行一次commit才算提交删除。


4、使用git mv命令重命名文件。修改后仍然需要commit。

git mv test.php test2.php


5、git的回滚操作

git checkout test1.php  #当本地文件发生修改,还没有提交到暂存区时,可以使用checkout命令用缓存区的文件覆盖本地文件
git reset HEAD tes1.php  #本地文件已经上传到暂存区的话,使用reset进行回退。
git reset --hard c881916  #使用log中的ID编号进行回滚


6、使用git diff命令进行工作区和暂存区的差异比较,本地目录为工作区,经过add但为提交到仓库中的为暂存区

git diff file1  #比较本地工作区与暂存区的区别
git diff --cached file1  #比较暂存区和仓库中的区别



7、使用log命令查看Git日志

git log  #该命令可以看到每次进行版本修改时的日志信息
git log --oneline  #单行显示精简化的日志
git log -2  #查看最近2次提交的日志
git shortlog  #查看每个用户提交版本库的统计日志
git log -C index.php  #查看指定文件的修改历史
git reflog  #如果版本从10回退到1,那么2-10的log就看不到了,想再跳回去就需要使用reflog查看所有日志


8、使用tag命令进行Git的标签管理

git tag -a "v1.1" -m "第一个标签" #为当前工作仓库定义一个标签
git tag -a "v2" 30e284 -m "指定id号打标签"  #为指定的commit id号打标签,通过git log可以看到id号
git tag  #查看已有标签
git tag -d v2  #删除v2标签
git show  v2 #查看v2这个标签和哪个id号是关联的

9、使用git blame命令查看每个文件具体修改者是谁

git blame readme.txt


六、Git的分支管理

1、使用git branch命令查看与创建分支

git branch  #查看分支,默认是在master分支。当前分支处会有一个*号,加上-a选项可以显示远程仓库的分支
git branch new  #创建一个名为new的新分支,但不会切换到该分支
git branch -m oldname newname  #修改分支名字
git branch -d linuxe  #删除不需要的分支

2、使用git checkout命令切换分支
git checkout new  #切换到new这个分支,并且master分支的文件也会跟着过来,在该分支里进行的操作不会影响到主分支
git checkout -b new  #创建一个名为new的新分支并切换过去


3、使用git merge命令切换分支

git merge master  #将master分支与当前分支合并。通常这步验收后再由master合并其他分支


评论