博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git 查看和撤销
阅读量:6318 次
发布时间:2019-06-22

本文共 1738 字,大约阅读时间需要 5 分钟。

linux下文本的新建和追加内容

git cat-file -p ID可查看当前master的数据

观察Git 內部如何储存Commit 随便便抓一個 Commit 的 SHA1 开始:

git cat-file -p a08181bf3(观察这个commit,找出 tree 位置 ) git cat-file -p ea44d629 (观察 tree,找出任一个 blob SHA1) git cat-file -p d9647d8a (观察blob 的內容)

通过git diff命令,可比较工作区与暂存区的差异

“diff --git a/index.html b/index.html” ,代表的是对git里面的命令,进行可视化显示。其中“a/index.html”和“b/index.html ”分别代表的是暂存区和工作区中的index.html文件。 index 6cef113..684ae9d 代表两个版本的git哈希值(暂存区的文件对象对应的哈希值6cef113,与工作区文件对应的哈希值684ae9d )。

我们可以通过git cat-file -t查看git哈希值的类型

可通过 git cat-file -p查看其内容

"@@ -1,2 +1,3 @@" 代表差异的定位语句,减号后是原文件的开始行号和行数(若只有一行,就不显示行数)。加号后是新文件的开始行号和行数。

上面的意思表示原文件从第一行开始,只有两行。新文件从第一行开始,共三行

"---" 表示变动前的文件

"+++" 表示变动后的文件

“abcdef”前面的+号,代表该行是新增的。

关于文件内容内容的每一行最前面,会有一个标记位。

如果为空,表示该行无变化

如果是感叹号(!),表示该行有改动

如果是减号(-),表示该行被删除

如果是加号(+),表示该行为新增

100644 代表当前文件类型和权限,100代表regular file,644代表权限是:拥有者(读+写),所属组(读),其他人(读)

四、如何比较工作区与本地仓库的差异

通过git diff HEAD命令,可比较工作区与本地仓库的差异。

五、如何比较暂存区与本地仓库的差异

通过git diff --cached 命令,可比较工作区与本地仓库的差异。(没测试成功,原因不明)

六、如何撤回工作区的改动

在git的工作区里面,有的时候,不小心改动了某个文件,可以使用git checkout -- file来取消上次改动,原理:把暂存区的数据加载到工作区覆盖掉修改

七、如何撤回工作区的提交

撤回工作区的提交,也就是将暂存区里面,因本次工作区里提交,而修改的blog对象,回退到修改为之前的blog对象。

有的时候,需要提交到暂存区的文件很多,为了简便,我们执行了如下命令:

git add .复制代码

将工作区内所有文件(已经添加git跟踪的文件和尚未添加到git跟踪的文件),统统搞到暂存区,那么怎样撤回其中一个多少几个文件呢?

当然是有的,我们可以使用git reset HEAD(或者git reset,HEAD可缺省)来从暂存区删除内容,原理:在版本库中把当前版本数据加载到暂存区覆盖掉原来的

八、如何撤回暂存区的提交

当我们执行了git commit 的时候,发现提交的内容有问题,或是不应该提交,我们怎样取消上次提交呢?

其实,就是改变版本库当前分支指向的commit对象。首先来了解什么是HEAD HEAD是一个引用,引用的是当前的分支,如果当前处于master分支,那么HEAD就会指向master

比如,通过git log查看所有提交(思考:git log 跟 git reflog 的区别)

git log只有当前所在版本之前提交的commit记录,git reflog有所有对本地版本库的操作记录

如何比较两次提交(两个版本)中的文件的差异 可以用git diff 哈希值 哈希值,哈希值是Blog类型

当然,我们也可以通过git cat-file -p命令查对应commit(版本)的内容

branch 指向該 branch 最新的 commit HEAD 指向 current branch

转载地址:http://odrxa.baihongyu.com/

你可能感兴趣的文章
在 VS2013的ASPNET站点开发中用 xheditor v1.1.13 作为HTML编辑器
查看>>
【Adaboost算法】C++转C, 分类器结构设计
查看>>
C#中将dll汇入exe z
查看>>
在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口(老罗学习笔记4)...
查看>>
使用C#开发一个简单的P2P应用
查看>>
如何删除Windows服务
查看>>
Win8 IE10 只能以管理员打开的解决方法
查看>>
打豪车应用:uber详细攻略(附100元优惠码)
查看>>
CSS3系列教程:HSL 和HSL
查看>>
RS开发日期提示控件默认为昨天之进阶篇
查看>>
CentOS7区域设置
查看>>
Html 定位position
查看>>
关于论文检索的几点知识
查看>>
2015 UESTC 搜索专题K题 秋实大哥の恋爱物语 kmp
查看>>
解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
查看>>
答辩的一般流程、技巧和常见问题
查看>>
杭电1171 Big Event in HDU(母函数+多重背包解法)
查看>>
STM32 USB 问题汇总(转)
查看>>
android的onCreateOptionsMenu()创建菜单Menu详解
查看>>
js swipe 图片滑动控件实现 任意尺寸适用任意屏幕
查看>>