git log origin/develop报错“fatal: ambiguous argument”

5
背景:我正在制作一个分析两个分支差异的工具。我想查看在origin/developorigin/release上提交的历史记录。由于我只需要历史记录,因此我使用了仅包含历史记录的项目克隆(git clone --bare)。

在执行git fetch之后,我希望能够查看release和develop上最新的提交,而不必在每个分支上都执行git merge origin/develop|release。所以我尝试只使用git log origin/develop [... format options]命令。

对于某些项目,它按预期工作。但是对于特定的项目,我会收到以下错误信息:

$ git log origin/develop                                                                                                                                                                                                                 master * ] 11:01 
fatal: ambiguous argument 'origin/develop': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

如果我尝试运行git remote -v命令,我可以看到origin正确定义。那么为什么origin/develop不是一个有效的版本呢?
1个回答

1

引用 --bare标志的文档

此外,远程分支头将直接复制到相应的本地分支头,而不映射到refs/remotes/origin

如果没有使用--bare标志克隆存储库,则此git log选项将起作用。

编辑: 回答评论中的问题,这也意味着您可以直接调用git log <branchname>,而无需引用origin/<branchname>。 也就是说,在您的情况下:

git log develop

1
好的,这回答了我的问题,谢谢。我会尽快接受它,但有5分钟的延迟。你有没有任何想法,我如何在不必克隆整个项目的情况下跟踪 origin/develop?我觉得这应该是可能的。 - Arnaud Denoyelle
@ArnaudDenoyelle 你可以直接调用 git log <branchname> - 参见我的编辑后的答案。 - Mureinik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接