致命:不明确的参数“<branch_name>”:修订版和文件名

问题描述 投票:0回答:4

这就是我所做的:

  • 我跑了
    git checkout -b branch_name
  • 我在
    branch_name
    上做出了一些承诺。
  • 我检查了
    master
    分支并进行了快进合并。

当我运行

git log branch_name --oneline
时,我收到以下消息:

fatal: ambiguous argument 'branch_name': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

可能是什么问题?

git version-control
4个回答
70
投票

它告诉您,您有一个名为“branch_name”的分支,还有一个名为“branch_name”的文件或目录。

如果您希望命令将“branch_name”视为分支,请使用

git log --oneline branch_name --

如果您希望它将“branch_name”视为文件,请使用

git log --oneline -- branch_name

3
投票

如果万一有人在尝试以下操作时遇到上述错误,这里是修复方法

问题:-

#In master branch
git checkout -b feature-a

#changed to feature-a branch
vi a.txt
git commit -m "adding a file" a.txt
git push
git diff master

fatal: ambiguous argument 'master': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

解决方案:-

git diff origin/master

1
投票

通常,我使用 diff 的方式如下:

git diff -r 2e706c4dd3 -r 838112ed50 > codereview.txt

...制作一个漂亮的 codereview.txt 文件。 好吧,我不小心运行了这个:

git diff -r 2e706c4dd3 -r 838112ed50 > 838112ed50

这使得文件

838112ed50
本身,从而使
git diff
命令变得不明确,关于我是要尝试比较文件还是分支。


0
投票

如果没有与文件名同名的分支

$ git diff myfile.txt
fatal: ambiguous argument 'myfile.txt'
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
$ git status -sb myfile.txt
## master...origin/master
 M myfile.txt
$ git branch -a
  test1
  test2
  test3
* master
  remotes/origin/test1
  remotes/origin/test2
  remotes/origin/test3
  remotes/origin/master
$ grep url .git/config
url = [email protected]:mystuff/myfiles.git
$ cd ..
$ mv myfiles myfiles-git-fubar
$ git clone [email protected]:mystuff/myfiles.git
$ cd myfiles
$ git diff myfile.txt
$ diff myfile.txt ../myfiles-git-fup # and do what you need to do if any changes
$ rm -rf ../myfiles-git-fubar

我只能说“git”

© www.soinside.com 2019 - 2024. All rights reserved.