Git初始

一)git的介绍:

1)假设现在有一个文档,你的老板要求你针对于这份文件进行修改,进行完成的修改的版本是版本1,接下来是文档2,修改完文档2以后,接下来老板还不同意,于是又有了文档三,文档四,但是此时老板说第一个版本的文档是最好的,但是此时最终文档保存的内容是文档四最终的内容,此时想要拿到第一次文档修改的内容是无法拿到的,此时这一份工作就无法完成了,这种情况是针对于一份文档做多次的修改,我们无法针对于不同的文档进行管理,我无法拿到第一次修改的内容,也无法拿到第二次,第三次修改的内容;

2)此时第二次的时候,我的老板有要求再来修改一份文档,此时我们将第一次修改完成的文档是设计文档V1,此时设计文档V1完成以后,老板说你的文档不靠谱,此时你再去给我修改,但是此时我会把文档V1复制一份,此时就得到了另一款设计文档,就是设计文档V2,此时我们手里面就有了两个版本的文档,此时无论是第一个版本的文档还是第二个版本的文档我都有,此时果然当文档2上传的时候老板此时还不满意,我就针对于这个文档反反复复的进行修改,此时已经把设计文档更新到了文档V5,此时老板说你修改的这些文档还不如你当初修改的第一份文档,此时我就把第一份文档开开心心的交给他了,对一个文档进行多个版本的管理这是仅仅在文档内容比较少的情况下,但是如果文档升级版本过多,此时维护的成本也越来越高,是很有挑战的,各自的版本的修改的内容还是什么还知道吗?

3)版本控制器就由此诞生了, 可以记录每一次代码的改动和版本的迭代都可以记录起来,记录每一次的修改的内容以及版本迭代的一个管理系统,git就是目前最主流的版本控制器,git可以帮助我们控制电脑上所有格式的文件或者是文档,对于开发人员来说,可以管理软件开发中的源代码文件

二)安装git

1)查看git是否已经被安装:git --version

2)卸载git:sudo yum remove git -y

3)安装git:sudo yum install git -y

三)创建git的本地仓库:

1)git是一个版本控制系统也是一个版本控制器,如果记录每一次修改的内容和版本迭代的一些内容,虽然可以使用git追踪管理,但是这些文件内容不可以存放在电脑上面的任意位置,如果这样的话git就不能追踪管理了,如果想要管理这些文件,就需要把这些文件放到仓库中

2)只有在仓库中的文件才能被git追踪并且管理,所以先创建一个文件目录,然后尝试使用命令来创建仓库,git init命令就可以在当前文件目录下创建一个本地仓库,点击回车即可

3)由此可以看出当前目录gitcode下面有叫做.git的目录,这是执行git init命令以后新增的

4)使用tree命令,可以看到在.git/隐藏目录下面有很多东西,这个隐藏目录是用来追踪和管理仓库的,注意不要修改这个隐藏下面的内容,否则会把这个git仓库给破坏掉

5)最后在gitcode目录下面配置name选项和email选项,如果不配置这两个属性,那么将来再进行操作本地文件的时候就会出现问题,下面是命令

git config:git config user.name+"自己的自定义字符串" 

查看所有已经被设置过的键值对:git config -l

删除已经的键值对:git  config --unset  user.name,想把name删除掉

我们在服务器上面不止可以配置一个本地仓库,可以创建多个本地仓库

git config --global  user.name "XX",这里面的global表示在当前的服务器上的所有本地git仓库都进行设置生效

git config --global unset --set

四)认识工作区,暂缓区,版本库

在当前的情况下,在gitcode目录下创建一个readMe目录,但是Git是不能管理readMe文件的

 .git是仓库,就是版本库(仓库),但是readMe文件本身并没有存在于本地仓库里面

执行tree .git下面的目录如下:是不可以在.git下直接添加文件的

工作区:就是在电脑上写代码或者文件的目录,咱们的git是不可以直接管理工作区的文件的

.git目录:版本库

1)add命令:执行add命令以后会将工作区中的新增,修改删除的内容保存到版本库的暂存区中

2)commit命令:将暂存区的内容存放到master分支下里面也是存放的是修改文件的内容的索引,只有执行commit操作以后才算真正的写入了一个版本库

3)对象库objects:每一次执行add命令以后,修改的工作区的内容会写入到对象库中的一个新的git对象中,这就相当于是维护了工作区的版本,就做好了对于一个文件版本的管理,对应的是.git目录下面的objects目录;

从head指针开始,就可以拿到所有文件修改的内容,就可以拿到master的分支,对应的是.git目录下面的head目录

4)暂缓区:英⽂index,⼀般存放在.git⽬录下的/index⽂件.git/index中,把暂存区有时也叫作索引

5)版本库:也被称之为是仓库,工作区有一个隐藏目录.git,他不算作是工作区,而是git的版本库这个版本库里面的所有文件都是可以被git管理起来的,每一个文件的修改删除,git都是可以追踪的,以便任何时候都是可以追踪历史,或者在将来某一个时刻可以被还原

五)commit add命令

git add readMe,如果要是针对于readMe文件进行了修改,就把readMe文件的修改放在暂缓区中

git add .如果要是针对于工作区中的任意文件进行了修改,就把任意文件的修改放在暂缓区中

git commit -m "描述信息",可以写添加了第一个文件

git log的作用就是看出最近的提交的信息,每一次提交都是随机生成一个ID

或者使用git log --pretty=oneline

查看.git目录下面的HEAD目录下面的内容

cat ./.git/HEAD可以直接看到HEAD指针直接指向MASTER的分支

下面来看一下master中的内容,这里存放的就是最新的提交的修改ID

现在左边执行 cat ./.git/refs/heads/master,然后根据打印出来的ID来找到objects中的git对象

最后通过git cat-file -p+上一步查询出来的ID

可以在最底层看到提交版本时候的描述信息,这个是自己添加的,还包括上一次提交的commitID,还包括是谁修改的版本信息,最上面的tree后面的ID很奇怪,我们打印一下:

这里面的打印出来的内容就是我们在此次版本中新增的文件

我们继续打印一下blob后面的ID的内容:打印出来就是此次对于文件的修改操作,比如说新增加的文件内容,这都会被git记录下来,objects中存放的就是已经被修改的对象库中;

总结:index中存放的就是add后新增的内容(真对于文件来说),master存放的就是最新提交的commitID

相关推荐

  1. <span style='color:red;'>Git</span><span style='color:red;'>初始</span>

    Git初始

    2023-12-21 01:30:03      37 阅读
  2. Git】012-Git 仓库初始化

    2023-12-21 01:30:03       14 阅读
  3. Git初学入门指令

    2023-12-21 01:30:03       28 阅读
  4. git教程编写初衷

    2023-12-21 01:30:03       20 阅读
  5. git初始化一个远程空仓库

    2023-12-21 01:30:03       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 01:30:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 01:30:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 01:30:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 01:30:03       18 阅读

热门阅读

  1. 在GBASE南大通用ADO.NET 中调用一个存储过程

    2023-12-21 01:30:03       34 阅读
  2. C 语言运算符详解

    2023-12-21 01:30:03       36 阅读
  3. 解决mp4视频无法拖动进度条的问题

    2023-12-21 01:30:03       108 阅读
  4. git基本命令

    2023-12-21 01:30:03       50 阅读
  5. 用Python制作二维码

    2023-12-21 01:30:03       37 阅读