2010-06-27 10 views
8

Cada pieza de la documentación que he leído en Git (incluyendo el libro en línea y la ayuda incorporada) dice que puedo escribir "git diff" de línea de comandos, pero cada vez que hago que me sale:¿Por qué no funciona git diff en la línea de comandos para mí?

usage: git diff [--no-index] <path> <path>

aquí es lo que he probado hasta ahora (todos son ejemplos de la documentación):

$ git diff 
usage: git diff [--no-index] <path> <path> 

$ git diff HEAD 
usage: git diff [--no-index] <path> <path> 

$ git diff -- 
usage: git diff [--no-index] <path> <path> 

$ git diff -- . 
usage: git diff [--no-index] <path> <path> 

$ git diff --stat 
usage: git diff [--no-index] <path> <path> 

$ git --version 
git version 1.7.1 

me estoy perdiendo algo aquí?

+0

Oops ... stackoverflow eliminó todo entre paréntesis angulares y eliminó el salto de línea después de cada línea que termina en una "etiqueta". El texto de "uso" debe estar en la siguiente línea. El mensaje de error real con paréntesis en lugar de corchetes angulares: "uso: git diff [--no-index] (ruta de acceso) (ruta)" – Karl

Respuesta

9

¿Está realmente dentro de un directorio con un repositorio de Git cuando está ejecutando estos? (git rev-parse --git-dir) El comando necesita poder encontrar el repositorio y determinar cuál es su árbol de trabajo para producir resultados útiles. De lo contrario (si no se puede identificar un repositorio), por defecto es un comando recursivo-diff simple, y necesita dos rutas para operar.

+0

Sí, eso fue todo. La documentación no menciona esta "característica" de git diff. ¿Cómo sabían ustedes sobre este modo de operación? – Karl

+0

@Karl: de la página de [* git diff *] (http://www.kernel.org/pub/software/scm/git/docs/git-diff.html): "Si se proporcionan exactamente dos rutas, y al menos uno no se rastrea, compare los dos archivos/directorios. Este comportamiento puede ser forzado por --no-index ". –

1

Use git diff --no-index. El [] significa que el argumento es opcional.

1

¿Estás trabajando en un repositorio de git? Si haces un estado de git, ¿obtienes algo parecido a lo siguiente?

> $ git status 
> # On branch develop.new_feature 
> # Changed but not updated: 
> # (use "git add <file>..." to update what will be committed) 
> # 
> # modified: feature 
> # modified: www/jkll.jsp 
> # 
> # Untracked files: 
> # (use "git add <file>..." to include   ... 
Cuestiones relacionadas