http://www.newsmth.net/nForum/#!article/LinuxApp/850708
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
比如某个仓库经历了几次修改,commit从HEAD往前依次为
HEAD (头指针,指向当前最新的commit)
commit1
commit2
commit3
...
但是某个文件只在 commit3 跟 commit1 这两次提交做了修改,现在
想知道它在 commit1 做的修改,可以用
git diff commit3..commit1 <file-name> 来实现
还有没有其它的办法?
git show commit1 -- <file-name> //这个命令 试了下,貌似不太管用,下面这个命令有用————->
[filename]表示你要查看的文件的完整名称
git diff HEAD^ HEAD filename
git 中 HEAD 指针详解:
例如:当前最新的commit版本为59877e...cfe6 对应上面的HEAD 指针
HEAD(大写)指向"current branch"(当下的分支) 最新的一次commit。当你用git checkout切换分支的时候,HEAD 修订版本重新指向新的分支并指向新分支最新的commit。
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交“59877e...cfe6”,上一个版本是HEAD^
,上上一个版本就是HEAD^^
,当然往上写100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
HEAD^ 相当于 HEAD ~1 HEAD 指针指向前一个commit 对象
HEAD
指向的版本就是当前版本
HEAD 1.既指向当前版本,2.也指向当前版本最新的一次commit HEAD 有这两个含义!