Git

176 阅读2分钟

Git的原理

暂存区

  • 存储的将要提交的内容
  • state area

仓库

  • 其实就是一个目录

克隆

  • git clone 克隆
  • 首先把远端仓库复制到本地
  • 首先取下来远端仓库所有的分支
  • 然后把远端分支他们的镜像
  • 什么叫镜像呢?
  • 镜像的命名:origin/master
  • 他们不能被HEAD所指向
  • 不能在本地移动
  • 镜像就是:远端是什么情况,我本地的镜像就是什么个情况,只会在下一次git pull 或者 git push的时候同步
  • 就是记录,上次我同步的时候,我的远端是什么情况!
  • 就是用来做参照物用的
  • 最后把这些链路上所有的提交都给克隆过来,这就算是整个克隆完成了

add

  • 就是将代码的改动添加到暂存区

提交

  • 就是将暂存区的代码提交到仓库

引用

  • 就是指向某个commit的哈希值的指针,或者指向引用的引用,就叫做引用

改变引用到某个commit

  • git reset --hard 某个commit的哈希值

创建新的分支干了什么?

  • 其实就是在某个commit处,对这个commit的哈希值,也就是引用,新增了一个引用指向这个引用即可,非常轻量级的一个操作

合并的含义 git merge

  • 其实就是生成新的提交,也就是引用

git push

  • 把本地的改动推送到远端去
  • 第一步:就是把HEAD所指向的分支推送过去
  • 把分支所指向的最新的Commit推送到远端去
  • 把Commit之前的所缺失的Commit给补全,同步到远端去
  • 更新远端HEAD所指向的分支,和本地保持一致
  • 同步远端和本地的镜像

git pull

  • 首先把远端的镜像更新到本地
  • 把缺失的Commit更新到本地
  • 上面就是git fetch所做的事情
  • 然后就是git merge origin/HEAD所指向的分支
  • 这就是git pull所做的事情