fatal: ambiguous argument 'origin': unknown revision or path not in the working tree
我过去经常使用
在不同的环境中,它不起作用。我不知道为什么。
1 2 3 4 5 | 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>...]' |
状态:
1 2 3 | user@host> git status On branch master nothing to commit, working directory clean |
号
遥控器:
1 2 3 | user@host> git remote -v origin https://example.com/repos/djangotools (fetch) origin https://example.com/repos/djangotools (push) |
版本:
1 2 | user@host> git --version git version 2.7.4 |
。
使用"Git版本1.8.1.4"
btw如果我使用"git diff origin/master",我会看到相同的错误消息。
btw2,我认为"/master"是多余的。SANE默认值是将本地分支与远程站点上的同一分支进行比较。
如果您有一个名为
另一种选择是,如果您试图查看本地分支和远程分支之间的差异,则可以选择以下方式:
江户十一〔四〕号
埃多克斯1〔5〕
或其他有文件证明的变体。
编辑:进一步阅读后,我意识到我有点错,
听起来您的源站没有头部,在我的例子中,这是因为我的遥控器是一个从未设置头部的裸存储库。
运行
我也遇到过同样的情况,诸如
为了解决这个问题,我执行了命令
埃多克斯1〔15〕
将refs/remotes/origin/head设置为指向原点/主分支。
在运行该命令之前,
1 2 | * master remotes/origin/master |
号
运行命令后,错误不再发生,
1 2 3 | * master remotes/origin/HEAD -> origin/master remotes/origin/master |
(其他答案已经确定错误的来源是头部没有被设置为原点。但是我认为提供一个可以用来修复问题错误的命令很有帮助,尽管对某些用户来说这是显而易见的。)
其他信息:
对于任何倾向于在设置和未设置参考/遥控/原点/头部之间进行试验和来回的人,这里有一些例子。
取消设置:埃多克斯1〔18〕
要设置:(除此答案开头显示的方式外,还有其他方式)
参考文献:
- 这就是答案
- 此so注释及其相关答案
git remote --help 见设定头说明- 埃多克斯1〔22〕
有时候事情会简单一些。我带着确切的问题来到这里,尝试了所有的建议。但后来发现问题只是本地文件路径不同,我在另一个文件夹中。-)
EG-
~/myproject/mygitrepo/app/$git diff app/testfile.txt文件
应该是
~/myproject/mygitrepo/app/$git diff testfile.txt文件
这对我来说是成功的用要删除的文件的相对路径替换rel-path-to-u文件从存储库中删除敏感数据医生说是完整的路径-但这对我来说是错误的-所以我尝试了rel-path,结果成功了。
1 | <from the repo dir>git filter-branch --force --index-filter"git rm --cached --ignore-unmatch REL_PATH_TO_FILE" --prune-empty --tag-name-filter cat -- --all |