【发布时间】:2017-12-19 04:30:58
【问题描述】:
我过去经常使用git diff origin。
在不同的环境中它不起作用。我不知道为什么。
user@host> git diff origin
fatal: ambiguous argument 'origin': unknown revision or path
not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
状态:
user@host> git status
On branch master
nothing to commit, working directory clean
遥控器:
user@host> git remote -v
origin https://example.com/repos/djangotools (fetch)
origin https://example.com/repos/djangotools (push)
版本:
user@host> git --version
git version 2.7.4
使用“git 版本 1.8.1.4”git diff origin 有效。
顺便说一句如果我使用“git diff origin/master”,我会看到相同的错误消息
顺便说一句,我认为“/master”是多余的。合理的默认设置是将本地分支与远程站点上的相同分支进行比较。
【问题讨论】:
-
在任何
git diff命令中都不会期望像origin这样的遥控器。 -
@ElpieKay 可以,我用
git version 1.8.1.4测试过 -
我试过了。是的,它有效。如果当前分支是
master,则git diff origin似乎是git diff master origin/master的缩写。如果当前分支没有远程跟踪分支,它应该不起作用。 -
如kernel.org/pub/software/scm/git/docs/gitrevisions.html 所示,裸名
origin通常会通过第6 步解析,即通过解析origin/HEAD。 (但是,如果某个较早的步骤首先解决了它,您将获得前一步的解决方案。如果origin/HEAD不存在或无效,您将获得您所看到的fatal。)这不注意当前分支的上游设置:如果您想对此进行比较,请使用@{u}。你可能会说 Git 使用了疯狂的默认值。 :-)
标签: git