首页 > 代码库 > Git暂存区之Git Diff魔法
Git暂存区之Git Diff魔法
在不同参数的作用下,git diff的输出并不相同。在理解了Git中的工作区,暂存区和版本库(当前分支)的最新版本分别是三个不同的目录树后,就非常好理解 git diff 的魔法般的行为了。
工作区,暂存区和版本库的目录树浏览
有什么办法能够像查看工作区一样直观地查看暂存区及HEAD中的目录树吗?对于HEAD指向的目录树,可以使用Git底层命令ls-tree来查看。
$ git ls-tree -l HEAD 100644 blob bb2f2a2c99a6608b400a63a2acf44a441194651a 58 welcome.txt
其中:
使用 -l 参数可以显示文件的大小。上面的 welcome.txt 的大小为58字节。
输出的welcome.txt文件条目从左到右,第一个字段是文件的属性(rw-r--r--),第二个字段说明是Git对象库中的一个blob对象(文件),第三个字段则是该文件在对象库中对应的ID——一个40位的SHA1哈希值格式的ID(这个后面会讲到),第四个字段是文件大小,第五个字段是文件名。
在浏览暂存区中的目录树之前,首先清除工作区当前的改动。通过 git clean -fd 命令清除当前工作区中没有加入版本库的文件和目录(非跟踪文件和目录),然后执行 git checkout . 命令,用暂存区内容刷新工作区。
Git暂存区之Git Diff魔法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。