working ver que modificados log hace ejemplo descartar clean cambios archivos git git-diff git-add

que - git ver archivos modificados



por qué `git diff` no reporta cambios en el archivo después de` git add` (4)

Porque git diff piensa que no hay cambios.

... incluso si el git status reporta como modificados ?

$ git status On branch master Your branch is ahead of ''origin/master'' by 2 commits. (use "git push" to publish your local commits) Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: file-added modified: file-with-changes << it knows there are changes

pero para ver la diferencia, necesito agregar explícitamente el último hash de reversión ...

$ git diff (nothing) $ git diff rev-hash diff --git a/file-with-changes b/file-with-changes index d251979..a5fff1c 100644 --- a/file-with-changes +++ b/file-with-changes . ..


Debido a que git diff comprueba por defecto las diferencias entre el área de preparación y su copia de trabajo. Cuando git add , su área de preparación coincide con su copia de trabajo y, por lo tanto, no informa los cambios.

Al agregar el indicador --cached indica diff a diff contra HEAD .


Por favor, intente git diff --staged comando por git diff --staged .

Más opciones que puedes usar.

git diff

Muestra los cambios entre el índice / la puesta en escena y los archivos de trabajo. En su caso, git add puso el file-with-changes en el área de preparación. Por lo tanto, no hay diferencia entre la puesta en escena y los archivos de trabajo.

git diff --staged

Muestra los cambios entre HEAD y el índice / puesta en escena. git diff --cached también hace lo mismo. staged y el cached se pueden usar indistintamente.

git diff HEAD

Muestra cambios entre HEAD y archivos de trabajo.

git diff $commit $commit

Muestra cambios entre 2 confirmaciones.

git diff origin

muestra diferencia entre HEAD y remoto / origen


Se encontró con el mismo problema exacto.

  • Agrega el nuevo archivo que creaste usando git add filename1.c
  • Realice otro cambio en algún otro nombre_archivo2.c que ya formaba parte del sistema de seguimiento del repositorio.
  • Haz un git diff y solo verás aparecer el cambio a filename2.c. Los cambios en filename1.c no se mostrarán.
  • Sin embargo, si realiza un estado de git, verá que aparecen los cambios tanto en filename1c como en filename2.c.
  • Haz un git commit -a -m "Cambios a filename1.c y filename2.c blah blah"
  • Hacer un empujón git

Verás que nombre_de_archivo1.c se ha comprometido.


git diff diffs contra el índice, no contra su revisión HEAD . Al ejecutar git add , has puesto los cambios en tu índice, ¡así que por supuesto no hay diferencias! Utilizar

  • git diff HEAD para ver las diferencias entre el estado de su árbol y la revisión de HEAD , o
  • git diff --cached para ver las diferencias entre su índice y la revisión HEAD .