Như những người khác đã chỉ ra, thông báo này đến từ dấu nhắc trình bao của bạn. Vấn đề là trong một kho lưu trữ mới được tạo ra HEAD
(.git/HEAD
) trỏ đến một ref chưa tồn tại.
% 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
Có vẻ như rev-parse
đang được sử dụng mà không kiểm tra lỗi đầy đủ trước. Sau khi cam kết đầu tiên được tạo .git/refs/heads
trông hơi khác một chút và git rev-parse HEAD
sẽ không còn thất bại nữa.
% ls -l .git/refs/heads
total 4
-rw------- 1 jhelwig staff 41 Oct 14 16:07 master
% git rev-parse HEAD
af0f70f8962f8b88eef679a1854991cb0f337f89
Trong chức năng cập nhật thông tin Git cho phần còn lại của dấu nhắc shell của tôi (phiên bản sửa đổi nặng nề của wunjo theme nhắc cho ZSH), tôi đã phần sau đây để làm được việc này:
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 ...
}
Nguồn
2012-10-14 23:16:17
Điều này không nên xảy ra ... Phiên bản git là gì? Nó được cài đặt như thế nào? – CharlesB
Git được cài đặt thông qua apt-get và phiên bản là 1.7.2.5. – David
Có vẻ như tôi đang sử dụng một số lệnh git trong dấu nhắc trình bao của bạn - tôi nghĩ thông báo lỗi đến từ đó. – ebneter