当前位置:主页 > 行业资讯 >

全球最新:Git基本原理介绍

时间: 2023-04-17 12:33:31 来源: 面包芯语

简单地说,Git 究竟是怎样的一个系统呢?请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余。

在学习 Git 时,请尽量理清你对其它版本管理系统已有的认识,如 CVS、Subversion 或 Perforce, 这样能帮助你使用工具时避免发生混淆。


(相关资料图)

尽管 Git 用起来与其它的版本控制系统非常相似, 但它在对信息的存储和认知方式上却有很大差异,理解这些差异将有助于避免使用中的困惑。

#左边执行$mkdirgit-demo$cdgit-demo&&gitinit$rm-rf.git/hooks/*.sample#右边执行$watch-n1-dfind.

➜tree.git.git├──HEAD├──config├──description├──hooks├──info│└──exclude├──objects│├──info│└──pack└──refs├──heads└──tags

#均无内容➜ll.git/objectstotal0drwxr-xr-x2escapestaff64BNov2320:39infodrwxr-xr-x2escapestaff64BNov2320:39pack➜ll.git/objects/info➜ll.git/objects/pack

./.git/hooks/commit-msg.sample./.git/hooks/pre-rebase.sample./.git/hooks/pre-commit.sample./.git/hooks/applypatch-msg.sample./.git/hooks/fsmonitor-watchman.sample./.git/hooks/pre-receive.sample./.git/hooks/prepare-commit-msg.sample./.git/hooks/post-update.sample./.git/hooks/pre-merge-commit.sample./.git/hooks/pre-applypatch.sample./.git/hooks/pre-push.sample./.git/hooks/update.sample

➜cat.git/HEADref:refs/heads/master

#均无内容➜ll.git/refstotal0drwxr-xr-x2escapestaff64BNov2320:39headsdrwxr-xr-x2escapestaff64BNov2320:39tags➜ll.git/refs/heads➜ll.git/refs/tags

➜cat.git/descriptionUnnamedrepository;editthisfile"description"tonametherepository.

#左边执行$echo"hellogit">helle.txt$gitstatus$gitaddhello.txt#右边执行$watch-n1-dfind.

#查看objects的文件类型$gitcat-file-t8d0e41blob#查看objects的文件内容$gitcat-file-p8d0e41hellogit#查看objects的文件大小$gitcat-file-s8d0e4110#拼装起来blob10\0hellogit

#左边执行$echo"hellogit">tmp.txt$gitaddtmp.txt#右边执行$watch-n1-dfind.

➜echo"hellogit"|shasumd6a96ae3b442218a91512b9e1c57b9578b487a0b-

➜ls-lhhello.txt-rw-r--r--1escapestaff10BNov2321:12hello.txt➜echo"blob10\0hellogit"|shasum8d0e41234f24b6da002d962a26c2495ea16a425f-#拼装起来blob10\0hellogit

➜cat.git/objects/8d/0e41234f24b6da002d962a26c2495ea16a425fxKOR04`HWH,6A%➜ls-lh.git/objects/8d/0e41234f24b6da002d962a26c2495ea16a425f-r--r--r--1escapestaff26BNov2321:36.git/objects/8d/0e41234f24b6da002d962a26c2495ea16a425f➜file.git/objects/8d/0e41234f24b6da002d962a26c2495ea16a425f.git/objects/8d/0e41234f24b6da002d962a26c2495ea16a425f:VAXCOFFexecutablenotstripped-version16694

importzlibcontents=open("0e41234f24b6da002d962a26c2495ea16a425f","rb").read()zlib.decompress(contents)

#左边执行$echo"file1">file1.txt$gitaddfile1.txt$cat.git/index$gitls-files#列出当前暂存区的文件列表信息$gitls-files-s#列出当前暂存区文件的详细信息#右边执行$watch-n1-dtree.git

#左边执行$gitls-files-s$echo"file.txt">file1.txt$gitstatus#右边执行$watch-n1-dtree.git

#左边执行$gitls-files-s$gitaddfile1.txt$gitls-files-s#右边执行$watch-n1-dtree.git

#左边执行$gitcommit-m"1stcommit"$gitcat-file-t6e4a700#查看commit对象的类型$gitcat-file-p6e4a700#查看commit对象的内容$gitcat-file-t64d6ef5#查看tree对象的类型$gitcat-file-p64d6ef5#查看tree对象的内容#右边执行$watch-n1-dtree.git

#左边执行$cat.git/refs/heads/master$cat.git/HEAD#右边执行$watch-n1-dtree.git

#左边执行$echo"file2.txt">file2.txt$gitstatus$gitaddfile2.txt$gitls-files-s$gitcat-file-p0ac9638$gitcommit-m"2ndcommit"$gitcat-file-pbab53ff$gitcat-file-p2f07720#右边执行$watch-n1-dtree.git

#左边执行$mkdirfloder1$echo"file3">floder1/file3.txt$gitaddfloder1$gitls-files-s$gitcommit-m"3rdcommit"$gitcat-file-p1711e01$gitcat-file-p9ab67f8#右边执行$watch-n1-dtree.git

#左边执行$cat.git/HEAD$cat.git/refs/heads/master$gitcat-file-t1711e01#右边执行$glo=gitlog

#左边执行$echo"dev">dev.txt$gitadddev.txt$gitcommit-m"1stcommitfromdevbranch"$gitcheckoutmaster$gitbranch-ddev$gitbranch-Ddev$gitcat-file-t861832c$gitcat-file-p861832c$gitcat-file-p680f6e9$gitcat-file-p38f8e88#右边执行$glo=gitlog

#左边执行$gitcheckout6e4a700$gitlog#右边执行$glo=gitlog

$gitcheckout-btmp$gitlog

#左边执行$gitreflog$gitcheckout9fb7a14$gitcheckout-bdev#右边执行$glo=gitlog

$echo"hello">file1.txt$gitdiff$gitcat-file-p42d9955$gitcat-file-pce01362#下述命令原理也是一样的$gitdiff--cached$gitdiffHEAD

$gitinit$gitaddREADME.md$gitcommit-m"firstcommit"

#关联远程仓库$gitremoteaddorigingit@github.com:escapelife/git-demo.git

➜cat.git/config[core]repositoryformatversion=0filemode=truebare=falselogallrefupdates=trueignorecase=trueprecomposeunicode=true[remote"origin"]url=git@github.com:escapelife/git-demo.gitfetch=+refs/heads/*:refs/remotes/origin/*

#推送本地分支$gitpush-uoriginmaster

➜tree.git├──logs│├──HEAD│└──refs│├──heads││├──dev││├──master││└──tmp│└──remotes#新增目录│└──origin#新增目录│└──master#新增文件└──refs├──heads│├──dev│├──master│└──tmp├──remotes#新增目录│└──origin#新增目录│└──master#新增文件└──tags

文章转载:分布式实验室(版权归原作者所有,侵删)

精彩文章合集

文章推荐

关键词:

相关文章

全球最新:Git基本原理介绍

点击左上方蓝色“一口Linux”,选择“设为星标”第一时间看干货文章 ☞【干货】嵌入式驱动工程师学习路线☞【干货】一个适合初学者的Linux物

来源:面包芯语2023-04-17

天天速递!成都两场飞杭州萧山机场未受影响

4月17日上午10时30分许,记者查询发现,4月17日成都天府、成都双流两个机场飞杭州萧山机场的航班均按计划时刻正常执行,未受4月16日晚杭州萧山

来源:锦观新闻2023-04-17

世界头条:大宁县昕水镇东铁村“宁脆”苹果花竞相开放

大宁县昕水镇东铁村“宁脆”苹果花竞相开放,主流媒体,山西门户。山西新闻网是经国务院新闻办审核批准,由山西日报报业集团主管、主办的山西省

来源:临汾日报2023-04-17

环球热点!风云三号07星顺利入轨!我国成功发射首颗主动降水测量卫星

北京时间2023年4月16日9时36分,我国在酒泉卫星发射中心使用长征四号乙运载火箭,成功将风云三号07星发射升空,卫星顺利进入预定轨道,发射任

来源:搜狐号-信息新报2023-04-17

焦点简讯:北京今日天空云量较多 大部地区最高气温22℃

4月17日北京以多云为主,预计白天的最高气温在22℃左右,早晚时段微凉,公众外出需注意适时添加衣物。

来源:中国天气网2023-04-17