这就是我所做的:
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>...]'
可能是什么问题?
它告诉您,您有一个名为“branch_name”的分支,还有一个名为“branch_name”的文件或目录。
如果您希望命令将“branch_name”视为分支,请使用
git log --oneline branch_name --
如果您希望它将“branch_name”视为文件,请使用
git log --oneline -- branch_name
如果万一有人在尝试以下操作时遇到上述错误,这里是修复方法
问题:-
#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
通常,我使用 diff 的方式如下:
git diff -r 2e706c4dd3 -r 838112ed50 > codereview.txt
...制作一个漂亮的 codereview.txt 文件。 好吧,我不小心运行了这个:
git diff -r 2e706c4dd3 -r 838112ed50 > 838112ed50
这使得文件
838112ed50
本身,从而使 git diff
命令变得不明确,关于我是要尝试比较文件还是分支。
如果没有与文件名同名的分支
$ 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”