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 deHEAD
, o -
git diff --cached
para ver las diferencias entre su índice y la revisiónHEAD
.