one log files example commits branches git git-diff

log - git diff one file



"Git diff" no hace nada (5)

El resultado predeterminado para git diff es la lista de cambios que no se han confirmado ni agregado al índice. Si no hay cambios, entonces no hay salida.

git diff [--options] [-] [...]

Este formulario es para ver los cambios que hizo en relación con el índice (área de ensayo para el siguiente compromiso). En otras palabras, las diferencias son lo que podrías decir que git agregue aún más al índice, pero aún no lo has hecho.

Ver la documentation para más detalles. En particular, vaya a los ejemplos y lea esta sección:

$ git diff # (1) $ git diff --cached # (2) $ git diff HEAD # (3)

  1. Difiere la copia de trabajo con el índice
  2. Diff el índice con HEAD
  3. Difiere la copia de trabajo con HEAD

Fuera de tu espacio de trabajo, como habrás adivinado, git no sabrá qué diferenciar, por lo que debes especificar explícitamente dos rutas para comparar, de ahí el mensaje de uso.

Supongo que este es un error de configuración en alguna parte, pero no puedo averiguar dónde. Los comandos regulares de git parecen funcionar bien, pero "git diff" no hace nada. Para estar seguro, eliminé las herramientas de diferencias externas de mi archivo .gitconfig. Esto se instaló a través de MacPorts y es la última versión (1.7.2.2).

Lo que veo es que cuando ejecuto "git diff" desde mi espacio de trabajo, simplemente sale, sin hacer nada.

$ git --version git version 1.7.2.2 $ git diff $

Si hago una copia de seguridad de un directorio, fuera de mi área de trabajo raíz, al escribir "git diff" me da esto:

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

Esto puede ser un comportamiento esperado ya que no estoy en un repositorio git.

¿Alguna idea sobre lo que puedo hacer para solucionar este problema?


No en su caso, pero tal vez porque el archivo que pasa no existe

$ git difftool HEAD HEAD^ -- path/that-not-exists

nada pasa


No hace nada si su directorio de trabajo está limpio y no existen diferencias con respecto a la última actualización. Intenta editar un archivo y luego ejecuta git diff nuevamente, y luego debe mostrar la diferencia.


Nota: comenzando git 1.8.5 o 1.9, Q4 2013 :

Cuando el usuario escribe " git diff " fuera de un árbol de trabajo , pensando que está dentro de uno, el mensaje de error actual que es un trazador de líneas único:

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

puede no ser suficiente para hacerle darse cuenta del error.

Agregue " Not a git repository " al mensaje de error cuando caímos en el modo " --no-index " sin una opción de línea de comando explícita para indicarnos que lo hagamos.

Ver:

Aclare la documentación para " diff --no-index ".
Indique que cuando no está dentro de un repositorio, --no-index está implícito y dos argumentos son obligatorios.

Aclare el mensaje de error de diff-no-index para informar al usuario que CWD no está dentro de un repositorio y, por lo tanto, dos argumentos son obligatorios.

To compare two paths outside a working tree: usage: git diff --no-index <path> <path>


Si lo está utilizando fuera de un repositorio real o copia de trabajo, su comportamiento es idéntico al de GNU diff. Entonces necesita informar los 2 directorios o archivos que se compararán. Ejemplo:

git diff old_dir new_dir .

Si hay alguna diferencia entre ellos, la salida le mostrará, como se esperaba.