我正在使用本地Git项目存储库,并创建了一个远程存储库,然后使用git push origin master
命令将本地存储库的内容推送到远程存储库。我现在可以正常执行提交和其他任务。
我现在要做的是从远程服务器上的命令行中检索特定文件的最新提交日志消息。在本地服务器上,我可以通过执行以下命令检索此信息:
git log -1 --format="%cr %s" test.docbook
但是,如何在远程服务器上执行相同的操作?从远程存储库中执行上述命令始终返回:
fatal: ambiguous argument 'test.docbook': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
当然有一些方法可以实现这个目标吗?
谢谢! 杰森
答案 0 :(得分:6)
我假设你的远程存储库是一个裸存储库?为了理解像“git log”这样的命令的参数,git需要决定每个参数是否命名一个修订版或文件。通常这是使用启发式方法完成的 - 如果参数与存在的文件匹配,则它是文件名,否则尝试将其解释为路径。
问题是,对于裸存储库,文件系统上不存在文件“test.docbook”,因此git无法判断您是否表示提交标识为“test.docbook”或HEAD仅限于路径“test.docbook”。您可以通过在参数列表中添加“ - ”来解决歧义 - 这会强制git将“ - ”之前的参数解释为提交,将“ - ”之后的参数解释为路径。
总而言之,请尝试:
git log -1 --format="%cr %s" -- test.docbook
由于没有修订参数,git将像往常一样假设“HEAD”。
答案 1 :(得分:4)
做git告诉你的事情!使用--
:
git log -1 --format="%cr %s" -- test.docbook