码迷,mamicode.com
首页 > 其他好文 > 详细

Git暂存区之Git Diff魔法

时间:2014-12-20 12:59:40      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

在不同参数的作用下,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魔法

标签:

原文地址:http://my.oschina.net/fhd/blog/358318

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!