考虑一个 Git 代码仓库,在其中某个文件曾经被删除过。
git rm path/to/file
git commit -a -m"testing"
好的,现在我想看文件的git log
,但是我收到了经典错误信息:
git log path/to/file
fatal: ambiguous argument 'path/to/file': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
解决方案很简单- 添加--
:
git log -- path/to/file
但是...为什么呢?这有什么必要吗?这里的理由是什么?难道git不能推测出,这可能曾经是一个文件吗?我理解"不确定性"的问题——但从来没有过那种名称的标签。如果文件曾经被删除,并且没有标签存在,那么选择"文件解释"始终是正确的选择。
另一方面,可能会有一个与文件同名的标签,git log
处理得很好:
fatal: ambiguous argument 'path/to/file': both revision and filename
Use '--' to separate filenames from revisions
这种行为似乎不一致。能否有人解释一下git的开发者当初的想法?
--
。但如果文件曾经被删除,且没有标签存在,则选择“文件解释”始终是一个好选择。 - Liosan