Git diff:比较特定文件的特定版本

时间:2013-03-02 14:03:12

标签: git

我克隆了linux内核git仓库:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

我对特定文件的历史感兴趣:

git log net/core/sock_diag.c

我看到了几个提交:

commit 8e904550d0fffcda2b18d7ab12750b0c75757e89
Date:   Sat Feb 23 01:13:48 2013 +0000

commit 6e601a53566d84e1ffd25e7b6fe0b6894ffd79c0
Date:   Sat Feb 23 01:13:47 2013 +0000

commit 9f00d9776bc5beb92e8bfc884a7e96ddc5589e2e
Date:   Sat Sep 8 02:53:54 2012 +0000

如何区分此文件的两个特定版本? 让我们说,我想分析9月8日和2月23日的版本 我可以使用以下内容,但这给了我整个提交的差异(不仅仅是我的文件)

git diff 9f00d9776bc5beb92e8bfc884a7e96ddc5589e2e 6e601a53566d84e1ffd25e7b6fe0b6894ffd79c0
有人可以建议吗?

1 个答案:

答案 0 :(得分:3)

将文件名添加到diff命令:

git diff 9f00d9776bc5beb92e8bfc884a7e96ddc5589e2e \
  6e601a53566d84e1ffd25e7b6fe0b6894ffd79c0 -- net/core/sock_diag.c

如果您对提交之间的更改感兴趣,可以使用git log -p(或--patch):

git log -p net/core/sock_diag.c