我在git checkout
之后用git clone
检查了存储库的特定修订版(git告诉我,如果这很重要,我有一个分离的头)。现在,这个版本不能完全编译。看起来某些重构只是部分完成,我需要看看后来做了哪些更改。
我试过
git diff origin/master -- path/to/file
但是我认为我的文件是全新的。我得到了一个差异:
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
new file mode 100644
index 0000000..19e1244
--- /dev/null
+++ b/drivers/usb/core/driver.c
(complete contents of the file follows)
对我没有任何帮助。我也尝试了git log
的变体而没有成功。
理想情况下,我希望在以后的日期看到对文件所做的所有更改(与我工作副本中的更改相比)。一旦我找到了有趣的内容,我想看一下特定版本中的所有更改。
注意:在我的情况下,仅仅检查一个更高版本或分支是行不通的。该项目为不同的设备使用不同的分支,我已经获得了我正在处理的设备的最新提交。有一些较新的提交,重构完成,但它们没有我需要的所有设备特定的东西。
答案 0 :(得分:1)
您缺少< commit>:
$ git diff -h
usage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
因此,如果您提供当前提交(HEAD)和将来的提交,它将显示影响分离头和远程头之间的指定文件的所有差异。即:
git checkout HEAD~10
git diff HEAD origin/master -- path/to/file
从我当前在master上的位置移回10次提交,创建一个分离的头,然后显示在当前提交和原始提交之间影响该文件的所有更改。当然git diff HEAD~10 HEAD -- path/to/file
无论如何都会从HEAD == master的常见情况中完成。
答案 1 :(得分:0)
与“Git: How can I reconcile detached HEAD with master/origin
?”一样,您可以首先在分离的HEAD所在的地方建立一个temp
分支,然后:
git diff origin/master temp -- /path/to/file