Como han señalado otros, este mensaje procede de su intérprete de comandos de shell. El problema es que en un repositorio recién creado HEAD
(.git/HEAD
) apunta a una referencia que aún no existe.
% 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
Parece que rev-parse
está siendo utilizado sin comprobación de errores suficiente antes de mano. Después de que se haya creado la primera confirmación, .git/refs/heads
se ve un poco diferente y git rev-parse HEAD
ya no fallará.
% ls -l .git/refs/heads
total 4
-rw------- 1 jhelwig staff 41 Oct 14 16:07 master
% git rev-parse HEAD
af0f70f8962f8b88eef679a1854991cb0f337f89
En la función que actualiza la información de Git para el resto de mi intérprete de comandos (versión muy modificada de wunjo tema de aviso para ZSH), tengo el siguiente para evitar esto:
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 ...
}
Esto no debería suceder ... ¿Cuál es la versión de Git? ¿Cómo se instaló? – CharlesB
Git se instaló a través de apt-get y la versión es 1.7.2.5. – David
Me parece que está utilizando algunos comandos de git en el intérprete de comandos de shell: creo que el mensaje de error proviene de allí. – ebneter