文件不再是HEAD修订版,但无法找到删除文件的提交位置

时间:2016-08-11 17:33:08

标签: git

我已经浏览了我的历史,却一无所获。我可以看到创建和修改它的提交,但它不再存在,我无法弄清楚它被删除的位置。

例如:

git log --full-history --all --diff-filter=D --summary -- path/to/file

什么都不返回。另外,为了确保我的工作副本与git的状态不同步(这甚至可能吗?)我试过:

git checkout -- path/to/file

我也尝试过* lot *的日志命令。我检查了github(托管repo的地方),文件也不是。我检查以确保我可以找到该文件的最后一次提交是完全合并的,它是(git branch --merged包含文件分支)

我知道合并提交似乎并没有显示更改内容的日志,是否有可能在合并期间意外删除了文件?或者它仍会出现在日志中?有没有办法在合并提交中获取一些日志信息?

更新:

这是此命令的(删节)输出:

git log --oneline -p -M --follow HEAD -- path/to/file

aaaaa this commit creates it again ?
diff --git a/path/to/file b/path/to/file
new file mode 100644
index 0000000..3333333
--- /dev/null
+++ b/path/to/file

bbbbb this commit modifies it
diff --git a/path/to/file b/path/to/file
index 1111111..2222222 100644
--- a/path/to/file
+++ b/path/to/file

ccccc this commit creates the file
diff --git a/path/to/file b/path/to/file
new file mode 100644
index 0000000..11111111
--- /dev/null
+++ b/path/to/file

1 个答案:

答案 0 :(得分:2)

如果文件已被删除或重命名,则在git log --all --oneline -c -p -- path_to_file的输出中,预计会找到--- a/path/to/file +++ /dev/null。这是删除或重命名文件的提交。如果在合并提交中发生了删除或重命名,-c也可以输出diff stat。