modificados - git push
git: ¿Por qué Git diff no muestra ninguna diferencia? (3)
Para el uso de la comparación entre el área de ensayo y el repositorio
$git diff --staged
Para el uso de comparación entre Trabajo versus Depósito
$ git diff
pero si un archivo se cambia y se agrega al área de ensayo ( $ git add fileName
) y tratamos de ver la diferencia con ( $ git diff
). No devolverá ninguna diferencia ya que el archivo está en el área de ensayo y no se comparará con el repositorio.
Si ejecuto ''git status'' en mi repositorio, aparece:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: myfile
Sin embargo, si hago un ''git diff myfile'' no muestra diferencias. ¿Esto es porque hice un cambio y lo eliminé para que vuelva al original?
¿Debo ejecutar ''git checkout myfile'' para borrarlo?
Su archivo ya está configurado para comprometerse. Puede mostrar su diferencia usando la opción --cached
de git.
git diff --cached myfile
Para dejar de grabar, simplemente haz lo que sugiere el estado de git en su salida;)
Puede consultar el índice de Git para obtener más información.
Tengo una preferencia por el alias "en --staged
, sobre todo porque me parece que "la --staged
realmente significa lo que quiero hacer, es decir, mostrarme las diferencias por etapas".
git diff --staged
La respuesta aceptada es correcta y no tengo ningún reparo con ella. Solo personalmente creo que - --cached
siente como que git diff está almacenando en la memoria caché la respuesta y mostrándome resultados precalculados o algo así.
También me gusta git diff HEAD
porque es más general. Reúne dos conceptos que la mayoría de la gente conoce, es decir:
git diff <commit>
te permite ver la diferencia entre tu posición actual y una confirmación previa.HEAD
(ohead
porque sostener turno es molesto) es una referencia a la punta de su rama. (Para aquellos de ustedes que están contando las pulsaciones de teclas,@
es un alias paraHEAD
).
Combinados, estos dos conceptos generalmente útiles resultan en:
git diff head
git diff @