El archivo no se muestra en git diff después de agregar git. ¿Cómo sé que se cometerá?

3 minutos de lectura

avatar de usuario
Gatito1911

Tenía un archivo sin seguimiento que no aparecía en un git diff y cuando lo agregué al área ‘cambios por confirmar’, todavía no aparece en el git diff. me aparece con un git status -v cuando hago una diferencia contra HEAD.

Todavía soy muy nuevo en git, entonces, ¿alguien podría decirme si el archivo se confirmará incluso si no aparece en una diferencia regular, ya que se agregó al área de preparación?

Si desea ver el escenificado cambios en una diferencia, aún puede usar git diffsolo tienes que pasar el --staged bandera:

david@pav:~/dummy_repo$ echo "Hello, world" > hello.txt
david@pav:~/dummy_repo$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   hello.txt
nothing added to commit but untracked files present
david@pav:~/dummy_repo$ git add hello.txt
david@pav:~/dummy_repo$ git diff
david@pav:~/dummy_repo$ git diff --staged
diff --git a/hello.txt b/hello.txt
new file mode 100644
index 0000000..76d5293
--- /dev/null
+++ b/hello.txt
@@ -0,0 +1 @@
+Hello, world

Si solo le importa qué archivos se organizan, por supuesto puede hacer una git statuspero git diff --staged --name-only le dará a cada nombre de archivo por etapas en su propia línea.

  • Si, mientras tanto, crea cambios en los archivos preparados, esos cambios se mostrarán en git diff y git diff --staged solo mostrará los archivos preparados en el punto en el que fueron preparados.

    – DZet

    4 oct 2020 a las 19:50

Para ver todos los cambios en el árbol de trabajo desde su última confirmación, incluidos los nuevos archivos, use:

git diff HEAD

Vea más ejemplos aquí: git-diff

Como has visto. se muestra en git statusasí que sí, se comprometerá cuando git commit eso.

Puede que le resulte útil utilizar una herramienta visual de git como gitx (Mac) o gitg (Linux),

Tiene agradables paneles para mostrarte en escena, no en escena, etc.

ingrese la descripción de la imagen aquí

Mi captura de pantalla parece sobria ya que actualmente no tengo cambios en ese estado.

Si escribió “git add __”, el archivo se incluirá en su próxima confirmación. Esta confirmación se enviará al servidor cuando ejecutes “git push”.

avatar de usuario
xavi

Me gustaría agregar a la respuesta principal de David Cain el siguiente matiz: el comando…

git diff --staged

… muestra solo los cambios por etapas (como señaló @rogerdpack).

Ahora, si solo está después de generar la diferencia de un solo archivo, entonces no tengo nada que agregar. Pero si lo que buscas es generar un archivo diff con “todos los cambios desde el último HEAD“, entonces probablemente debería (1.) organizar todos los archivos con cambios, (2.) ejecutar el diff, (3.) desorganizar todos los archivos, de la siguiente manera:

git add -A
git diff --staged HEAD
git reset

No hace falta decir que tenga en cuenta que estos comandos jugarán con todos sus archivos preparados y no preparados anteriormente, por lo que debe tener cuidado si tiene muchos archivos temporales por ahí. Ver el diferencias de git página del manual para más información.

¿Ha sido útil esta solución?