


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机教育中缺失的一谋MIT-L6-版本控制(Git)笔记Git的数据模型Git通过一系列快照来管理其历史记录。快照则是被追踪的最顶层的树。可以认为gitcommit会创建一个快照。typeobject=blob|tree|commitlypeblob=arraytypetree=mapvstring,tree|fileUpecommit=structparent:arrayauthor:stringmessage:stringsnapshot:tree/都是引用/引用是指向提交的指针,与对象不同的是,它是可变的(引用可以被更新指向新的提交)实际上,Git在储存数据时,所有的对象都会基于它们的
2、SHA-1hash进行寻址Blobs、trees和commits都一样,它们都是对象。当它们引用其他对象时,它们并没有真正的在硬盘上保存这些对象,而是仅仅保存了它们的哈希值作为引用。例如,上面为代码中的parent:array其实际上不是一个commit数组,而是一个哈希值数组,这些哈希值指向真正的对象,也就是一些commits。例如,gitcat-file-p698281b(698281b是某个tree,也就是某个文件夹的哈希值的一部分前缀)的结果是:100644blob4448adbf7ecd394f42ae135bbeed9676e894af85baz.txt040000treeC68d
3、233a33c5c06e0340e4c224f0afca87c8ce87foo而gitcat-file-p4448adb(4448adb是baz.txt的哈希值的一部分前缀)的结果即为baz.txte的内容。Git的命令行接口历史:gitlog-all-graph-decorate-oneline:可视化历史记录(有向无环图),zsh的git插件定义了很多别名,比如该命令的别名是gloga,去掉-all的别名是gloggitdiff:显加与上一次提交之间的差异gitdiff:显加某个文件两个版本之间的差异,new-revision默认是HEADgitdiff-cached:不加cached标识
4、的diff的意思是显示尚未暂存的改动,加了之后是查看已暂存的将要添加到下次提交里的内容修改、撤销和合并:“gitadd-p:交互式暂存,例如交互过程中可以按s键进行split,对文件中各个地方的改动分别选择暂存与否gitcheckout-:丢弃(尚未暂存的)修改“gitreset:取消暂存,把文件从暂存区放回工作区,默认为HEADgitreset-soft|-mixed-N|-hard|-merge|-keep:(见下图)撤销commit,把commit放回暂存区(soft),或放回工作区(mixed),或丢弃(hard),本质是对HEAD的移动gitreset-soft|-mixed-N|-
5、hardHEADS上条的特例,比较常用gitrebase:在一个过时的分支上面开发的时候,执行rebase以此同步master分支最新变动gitrebase-iHEADn:交互式变基,可用于修改commit信息,合并commit等等gitmergetool:使用工具来处理合并冲突。gitstash:把工作区暂存起来,允许你切换到其他分支,博主有时候在错误的分支上进行了修改,会用这个命令把修改暂存起来,然后换到正确的工作分支后使用gitstashpop远端操作:*gitclone-shallow:克隆仓库,但是不包括版本历史信息gitremoteadd:添加一个远端gitpushvlocalbr
6、anch:将对象传送至远端并更新远端引用gitbranch-set-upstream-to=/:创建本地和远端分支的关联关系其他:“.gitignore:故意不追踪的文件“gitblame:查看最后修改某行的人“gitbisect:通过二分查找搜索历史记录“gitinit-bare:几乎用不到,在课程视频中,讲师在某一个空文件夹中使用该命令,将该文件夹作为remote,然后将一个已有的仓库push到该文件夹*gitconfig-globalcore.excludesfile/.gitignore_global:在/.gitignore_global中创建全局忽略规则杂项图形用户界面:Git的有
7、很多,但是我们自己并不使用这些图形用户界面的客户端,我们选择使用命令行接口Shell集成:将Git状态集成到您的shell中会非常方便。(,)。这样的框架中一般以及集成了这一功能。编辑器集成:和上面一条类似,将Git集成到编辑器中好处多多。是Vim中集成Git的常用插件工作流:我们已经讲解了数据模型与一些基础命令,但还没讨论到进行大型项目时的一些惯例(有)。GitHub:Git并不等同于GitHub。在GitHub中您需要使用一个被称作的方法来向其他项目贡献代码。OtherGit提供商:GitHub并不是唯一的。还有像和这样的平台。资源“,强烈推荐!学习前五章的内容可以教会您流畅使用Git的绝大多数技巧,因为您已经理解了Git的数据模型,后面的章节提供了很多有趣的高级主题()如何编写Git是一个工具,简短的介绍了如何从Git错误中恢复;,简短的介绍了Git的数据模型。详细的介绍了Git的实现细节,而不仅仅局限于数据模型。通过基于浏览器的游戏来学习Git课后习题习题2是谁最后修改来README.md文件?$-all-n1-pretty=format:%anREADME.md最后一次修改_config.yml文件中collections:行时的提交信息是什么?$gitblame_config.yml|grepcollections:|head-n1|awkprint$1|s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GA/T 2165-2024警犬技术术语
- 购买小区车库合同协议
- 质量异议协议书范本
- 贷款养殖协议书范本
- 贷款担保合同补充协议
- 购买货物送货合同协议
- 货物运输外包协议合同
- 《第03节 探究外力做功与物体动能变化的关系》教学设计2
- 2025届广西贵百河联盟高三9月调研联考-生物试题(含答案)
- 2025届东北三省精准教学高三上学期开学考-数学试题(含答案)
- 乡村规划与设计教材课件
- 2023年高考-汉语文试卷及答案
- 航空油料特种设备修理员-航空油料特种设备修理员精选试题
- 2023年彭泽县小升初英语考试题库及答案解析
- LOI意向书中英文模板
- GB/T 4458.1-2002机械制图图样画法视图
- GB/T 38192-2019注射成型塑料圆柱齿轮精度制轮齿同侧齿面偏差和径向综合偏差的定义和允许值
- 建筑机械使用安全技术规程 jgj33-2012
- 版-3-反应器设计说明书
- 外科学总论教案-麻醉
- 《数据结构》课件(完整版)
评论
0/150
提交评论