我正在尝试从Debian(实际上是Virtualbox上的VM,已在Mac OS X上安装并运行)初始化一个新的GIT存储库:
[david@server-VM-001:~ $] mkdir test
[david@server-VM-001:~ $] cd test
[david@server-VM-001:test $] git init
Initialized empty Git repository in /home/david/test/.git/
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
[david@server-VM-001:test (master #) $]
有什么问题?
最佳答案
正如其他人指出的那样,此消息来自您的shell提示符。问题在于,在新创建的存储库中,HEAD
(.git/HEAD
)指向尚不存在的引用。
% git init test
Initialized empty shared Git repository in /Users/jhelwig/tmp/test/.git/
% cd test
% cat .git/HEAD
ref: refs/heads/master
% ls -l .git/refs/heads
total 0
% git rev-parse HEAD
HEAD
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
似乎在使用
rev-parse
之前没有进行足够的错误检查。创建第一个提交后,.git/refs/heads
看起来会有所不同,并且git rev-parse HEAD
将不再失败。% ls -l .git/refs/heads
total 4
-rw------- 1 jhelwig staff 41 Oct 14 16:07 master
% git rev-parse HEAD
af0f70f8962f8b88eef679a1854991cb0f337f89
在为我的 shell 程序提示符的其余部分(ZSH的wunjo提示符主题的大量修改版本)更新Git信息的函数中,我有以下解决方法:
zgit_info_update() {
zgit_info=()
local gitdir=$(git rev-parse --git-dir 2>/dev/null)
if [ $? -ne 0 ] || [ -z "$gitdir" ]; then
return
fi
# More code ...
}
关于macos - GIT致命:模棱两可的参数 'HEAD':未知版本或不在工作树中的路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12267912/