目录
Git·版本控制器的引入
版本控制器
Git安装(已安装可以跳过)
Linux-centos
Linux-ubuntu
Git基本操作
创建Git本地仓库
配置 Git
认识工作区、暂存区、版本库
工作区、版本库
stage暂存区
工作区内容使用Git管理
#:引入问题
#注意:
$ git --version
作用查看当前设备安装的 git 版本,也可以用于查看当前设备是否已安装git。
上图,为未安装git。
$ sudo yum install git -y
利用yum安装git。
安装成功便可以查到。
$ git --version
作用查看当前设备安装的 git 版本,也可以用于查看当前设备是否已安装git。
上图,为未安装git。
$ sudo apt-get install git -y
安装git。
可以使用 tree 查看该目录下的文件:
[qcr@ecs-205826 project]$ tree .git
.git
├── branches
├── config
├── description
├── HEAD
├── hooks
│?? ├── applypatch-msg.sample
│?? ├── commit-msg.sample
│?? ├── post-update.sample
│?? ├── pre-applypatch.sample
│?? ├── pre-commit.sample
│?? ├── prepare-commit-msg.sample
│?? ├── pre-push.sample
│?? ├── pre-rebase.sample
│?? └── update.sample
├── info
│?? └── exclude
├── objects
│?? ├── info
│?? └── pack
└── refs
├── heads
└── tags
9 directories, 13 files
当安装 Git 后首先要做的事情是设置我们的 用户名称 和 e-mail 地址,这是非常重要的。如果不配置这两个配置项,将来我们在对本地厂库进行操作的时候,就可能会出现一系列的问题。
git config 命令,为git厂库设置一些配置项。
$ git config [--global] user.name "Your Name"
$ git config [--global] user.email "[email protected]"
# 把 Your Name 改成自己对应的昵称
# 把 [email protected] 改成邮箱的格式,只要格式正确即可
$ git config -l
删除配置命令为:
$ git config [--global] --unset user.name
$ git config [--global] --unset user.email
其中 --unset ,表示重置某一个配置。执行后便可以发现没有了 user.name 与 user.email。
Note:使用--global 新增的配置,不能直接使 --unset 进行重置,需要加上--global 才能重置。
#问:直接在我们之前所创建的目录下创建一个文件 Git 能否进行管理?
是不能的!该文件所在的目录(project)并不是本地仓库,真正的本地厂库是隐藏的 .git 。而仓库又可以称作为版本库。
但是,又是不允许在.git 中手动的进行任何的修改,所以只能将文件写在 project 目录之下。Git 并将该目录称作为 git 的工作区。
Note:.git 虽然在写代码或文件的目录下,但是其是不属于工作区的
#:Git可以对文件进行版本控制 - 体现
在版本库中其实还有一个模块:对象库(objects)。
里面存储了一堆的 git对象 ,这些git对象是当我们在进行 git add 新增工作区修改的时候,会将具体的修改内容,都会存到一个新的git对象中,并将这个新的git对象维护到git的对象库里面。以此所有的工作区的内容修改都会被存储到一个git对象中,以此维护管理文件的所有的版本。
#:暂存区
可以发现暂存区中是一个树状结构,其里面存的不是一个一个的对象,它存的是一个个修改内容的git对象的索引,所以暂存区是轻量级的。
所以git commit ,是将暂存区中的树写到master分支下,所以master分支下和暂存区一样存的不是对象,而是一个个的索引。所以现在我们只要能拿到对应的HEAD(指针),就能拿到master这颗索引树,然后就能根据索引拿到某一个文件的具体修改的内容,拿到对应的具体的修改内容,就可以管控一个文件了。