¿Git Add tiene un interruptor detallado?


104

Estoy en el proceso de mover todos mis repositorios privados y públicos a github. Una de las decisiones que he tomado es usar solo la consola, ya que significa una huella de herramientas más pequeña si alguna vez necesito cambiar de PC, etc.

Sería un gran usuario de aplicaciones de consola y, siendo nuevo en git, decidí comprar la serie Mastering Git de Tekpub, ya que te muestra cómo integrar git bash como barra de herramientas.

Todo funciona bien excepto por el comando add all que es:

git add .

Parece estar funcionando, pero no tengo ninguna indicación de que funcione o no. ¿Hay un modificador detallado (creo que así se llamaría) que dijera qué archivos se rastrearon después de que se lanzó el comando?

Estoy usando Visual Studio 2010 con la instalación estándar de git (no extensiones de Git)


(Sí, es una pregunta antigua; la vi porque se acaba de editar) git add --helpmuestra la documentación del git addcomando, incluida la --verboseopción.
Keith Thompson

Una nueva idea para una vieja pregunta - Yo prefiero git add -Amás git add .no he mirado las diferencias, pero han encontrado que mi mando preferido es más probable que añadir archivos TODO cambiado o nuevos.
cptully

Respuestas:


134

Para algunos comandos git puede especificar --verbose,

git 'command' --verbose

o

git 'command' -v.

Asegúrese de que el interruptor esté después del comando git real. De lo contrario, ¡no funcionará!

También útil:

git 'command' --dry-run 

5
git 1.7.9 (cygwin) me dice que --verbose es una opción desconocida
Roy Truelove

5
@RTruelove: podría estar usando en git --verbose addlugar degit add --verbose
Bogdan D

29

Estaba depurando un problema con git y necesitaba una salida muy detallada para descubrir qué estaba saliendo mal. Terminé configurando la GIT_TRACEvariable de entorno:

export GIT_TRACE=1
git add *.txt

Salida:

14:06:05.508517 git.c:415               trace: built-in: git add test.txt test2.txt
14:06:05.544890 git.c:415               trace: built-in: git config --get oh-my-zsh.hide-dirty

1
¡Bingo! ¡Muchas gracias por esta variable de entorno!
Henry Rivera

3
Para facilitar las cosas, puede ir como: GIT_TRACE=1 git add *.txttodo en la misma línea.
cristianoms

6

Bueno, como (casi) todos los programas de consola para sistemas tipo Unix, git no te dice nada si un comando tiene éxito. Imprime algo solo si hay algún problema.

Sin embargo, si quieres estar seguro de lo que acaba de pasar, escribe

git status

y ver qué cambios se van a realizar y cuáles no. Te sugiero que utilices esto antes de cada confirmación, solo para asegurarte de no olvidar nada.

Dado que parece nuevo en git, aquí hay un enlace a un libro en línea gratuito que le presenta a git. Es muy útil, escribe sobre conceptos básicos y sobre diferentes flujos de trabajo conocidos: http://git-scm.com/book


Por la otra respuesta, veo que hay una manera de hacer que te diga lo que está sucediendo, pero te sugiero que te acostumbres sin el parámetro -v, el comportamiento predeterminado es más práctico (y es más rápido de escribir).
Riccardo T.

//, nunca había escuchado eso antes, que los programas de consola para sistemas tipo UNIX no le dicen nada si un comando tiene éxito. Ahora que lo he escuchado, supongo que debería haber sido obvio para mí.
Nathan Basanese

¡Eso simplemente no es cierto! Git me dice mucho si lo uso con regularidad, incluso si los comandos tienen éxito. Por ejemplo, git commitme dice cuántas líneas y archivos han cambiado, si se han creado nuevos archivos, o git pushme informa sobre el progreso del empuje hacia arriba.
LukeLR

5

Puede usar git add -ipara obtener una versión interactiva de git add, aunque eso no es exactamente lo que busca. Lo más sencillo es, después de haber git addeditado, utilizar git statuspara ver qué se escenifica o no.

El uso git add .no es realmente recomendable a menos que sea tu primera confirmación. Por lo general, es mejor enumerar explícitamente los archivos que desea preparar, para que no comience a rastrear archivos no deseados accidentalmente (archivos temporales y demás).


1
Simplemente use .gitconfig para definir excepciones, no es necesario realizar un seguimiento manualmente.
Steve K
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.