fatal: ambiguous argument 'origin': unknown revision or path not in the working tree
git diff origin often in the past.
In a different environment it does not work. I have no clue why.
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
With “git version 18.104.22.168”
git diff origin works.
BTW I see the same err msg if I use “git diff origin/master”
BTW2, I think the “/master” is redundant. The sane default is to compare the local branch with the same branch on the remote site.
One Solution collect form web for “fatal: ambiguous argument 'origin': unknown revision or path not in the working tree”
git diff command typically expects one or more commit hashes to generate your diff. You seem to be supplying the name of a remote.
If you had a branch named
origin, the commit hash at tip of the branch would have been used if you supplied
origin to the diff command, but currently (with no corresponding branch) the command will produce the error you’re seeing. It may be the case that you were previously working with a branch named
An alternative, if you’re trying to view the difference between your local branch, and a branch on a remote would be something along the lines of:
git diff origin/<branchname>
git diff <branchname> origin/<branchname>
Or other documented variants.
Edit: Having read further, I realise I’m slightly wrong,
git diff origin is shorthand for diffing against the head of the specified remote, so
git diff origin =
git diff origin/HEAD (compare local git branch with remote branch?, Why is "origin/HEAD" shown when running "git branch -r"?)
It sounds like your origin does not have a HEAD, in my case this is because my remote is a bare repository that has never had a HEAD set.
git branch -r will show you if
origin/HEAD is set, and if so, which branch it points at (e.g.
origin/HEAD -> origin/<branchname>).