加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

假如非得相识下 GIT 体系… – 实践篇

发布时间:2018-09-20 18:21:57 所属栏目:移动互联 来源:野兽
导读:【新品产上线啦】51CTO播客,随时随地,碎片化进修 git的界说是一个内容寻址文件体系。内容、寻址、文件、体系,该来的总会来的 本文旨在通过实践来先容.git文件夹中的目次及文件成果,属git基本常识。但在此基本上可办理各git行使进程中也许碰着的题目,如

HAED 文件包括对 git分支 的操纵记录,如

  1. vi HEAD 
  2. # 99a10c283c33beed7f31c210a6c8b411d2a31085 5daf6094ea2cc60d17e947c0435096a4bdafe82d yeshou <yeshou@xxx.com> 1535082919 +0800       commit: rm files 
  3. # 5daf6094ea2cc60d17e947c0435096a4bdafe82d b8e02a5f9c2bf44342d15f5ea1e60ffd9434765a yeshou <yeshou@xxx.com> 1535087285 +0800        checkout: moving from test to master 
  4. # 先是删除文件后提交了次,再是由test检出到master 

refs 文件夹包括 heads 文件夹,remote文件夹。heads 记录当地相干的各 git分支 操纵记录,remote 记录长途客栈相干的各 git分支 操纵记录

  1. cd heads 
  2. ls 
  3. # master   master分支操纵记录 
  4. # test     test分支操纵记录 
  5.   
  6. cd remote/origin 
  7. ls 
  8. # master  长途master分支操纵记录 
  9. # test    长途test分支操纵记录 

HEAD 文件指示当前被检出(地址)的分支,如当前在test分支,文件内容则为ref: refs/heads/test。

index 文件是当前版本的文件索引,包括天生当前树(独一确定的)工具的所虚信息,可用于快速比对事变树和其他提交树工具的差别(各commit和HEAD之间的diff),可用于存储单文件的多个版本以有用的办理归并斗嘴。可行使git ls-files 查察index文件内容。如:

  • git commit 的一次提交从index中的信息天生tree工具,将其存储在工具数据库中,并与本次新的commit做关联,发生本次commit的tree信息(下面的objects先容中会提到commit和tree)。

refs/ (references) 文件夹存储指向数据(分支)的提交工具指针;个中 heads 文件夹记录内部文件对应名称的分支的提交工具;tags记录内部文件对应名称的标签的提交工具;remotes记录内部文件对应名称的长途客栈分支的提交工具;

举个例子:

  1. cat .git/refs/heads/master 
  2.  # ce1fed3fdbaf12e816e3028055f9feee57b33b45 当前master的提交记录 
  3.  git checkout -b test # 检出一个新分支 
  4.  find .git 
  5.  # 多了个 .git/refs/heads/test 文件 
  6.  git log 
  7.   
  8.  # commit 63a85dcbc6978f2d43996f5bebc38993c2afadaa (HEAD -> test) 
  9.  # Author: yeshou <yeshou@xxx.com> 
  10.  # Date:   Sat Aug 25 13:57:26 2018 +0800 
  11.  # 
  12.  # branch test : edit test : add line : write d 
  13.   
  14.  # commit ce1fed3fdbaf12e816e3028055f9feee57b33b45 (master) 
  15.  # Author: yeshou <yeshou@xxx.com> 
  16.  # Date:   Sat Aug 25 12:40:35 2018 +0800 
  17.  #  
  18.  # edit test : add line : write c 
  19.   
  20.  cat .git/refs/heads/test 
  21.  # 63a85dcbc6978f2d43996f5bebc38993c2afadaa   当前test的最近提交记录 
  22.  cat .git/refs/heads/master 
  23.  # ce1fed3fdbaf12e816e3028055f9feee57b33b45 依然是当前master的最近提交记录 

另两者亦然。

objects/ 文件夹用以存储git客栈中的全部数据内容。

一步步来…

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读