¿Git agrega todos los archivos modificados, eliminados y sin seguimiento?


256

¿Hay alguna manera de agregar todos los archivos sin importar lo que les haga, ya sea que se eliminen, no se rastreen, etc.? como para un compromiso. Simplemente no quiero tener git addo git rmtodos mis archivos cada vez que me comprometo, especialmente cuando estoy trabajando en un producto grande.


Respuestas:


307

Tratar:

git add -A

Advertencia: a partir de git 2.0 (mediados de 2013), esto siempre organizará los archivos en todo el árbol de trabajo .
Si desea organizar los archivos bajo la ruta actual de su árbol de trabajo, debe usar:

git add -A .

Ver también: Diferencia de git add -Aygit add .


esto no funcionó para mí ... ¿cómo puedo mostrar mi terminal de entrada-salida en esta discusión? copiar y pegar la salida de mi terminal como respuesta a esta discusión?
Rakib

aquí está el problema estoy frente - stackoverflow.com/q/7726131/636762 - me ayuda amablemente en este caso por favor
Rakib

Esto tampoco puede funcionar si su versión de git es antigua. Estaba ejecutando un script en un servidor que ejecutaba git 1.5.2.5. git add -A no funcionaba. Desde el script, no se informó ningún mensaje de error. Solo desde la línea de comando encontré que -A no era una opción legal para agregar.
Epónimo

¿Pero por qué tengo que agregar archivos cada vez que quiero hacer una confirmación? Cada vez que realizo cambios en un archivo, necesito agregarlo ..
Frade

3
Así es como funciona Git. Debe agregar cambios a su área de preparación antes de comprometerla. Por ejemplo, puede agregar solo algunos archivos a una confirmación y proporcionar comentarios para ella, en lugar de todos los archivos todo el tiempo. Aquí hay una explicación útil de lo que está haciendo y por qué: gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash

75

Tratar

git add -u

La uopción " " significa actualización. Esto actualizará el repositorio y en realidad eliminará los archivos del repositorio que haya eliminado en su copia local.

git add -u [filename]

organizar una eliminación en un solo archivo. Una vez presionado, el archivo ya no estará en el repositorio.

Alternativamente,

git add -A .

es equivalente a

git add .

git add -u .

Tenga en cuenta el '.' Extra en git add -Aygit add -u


Advertencia: a partir de git 2.0 (mediados de 2013), esto siempre organizará los archivos en todo el árbol de trabajo .
Si desea organizar los archivos bajo la ruta actual de su árbol de trabajo, debe usar:

git add -A .

Ver también: Diferencia de git add -Aygit add .


42

La siguiente respuesta solo se aplica a Git versión 1.x, pero a Git versión 2.x.

Tu quieres git add -A:

git add -A etapas Todo;

git add . etapas nuevas y modificadas, sin eliminar;

git add -u etapas modificadas y eliminadas, sin novedades.


Tenga en cuenta que lo anterior solo se aplica a Git 1.x. Para git versión 2.x, git add -Aes equivalente a git add .. Ver aquí para más discusiones.
jdhao

27

git add --all o git add -A o git add -A . Etapas Todo

git add . Etapas nuevas y modificadas pero sin eliminar

git add -u Etapas modificadas y eliminadas pero sin nuevas

git commit -aMedios git add -uygit commit -m "message"

Después de escribir este comando, siga estos pasos:

  1. prensa i
  2. escribe tu mensaje
  3. prensa esc
  4. prensa :wq
  5. prensa enter

git add <list of files> agregar archivo específico

git add *.txt agregar todos los archivos txt en el directorio actual

git add docs/*/txt agregar todos los archivos txt en el directorio docs

git add docs/ agregar todos los archivos en el directorio docs

git add "*.txt"o git add '*.txt'agregue todos los archivos en todo el proyecto


12

No estoy seguro de si agregará archivos eliminados, pero git add .desde la raíz agregará todos los archivos sin seguimiento.


vea mi respuesta sobre cómo agregar archivos borrados
Matt Kneiser

5

Esta es mi alternativa (en cualquier bash):

$ git status -s|awk '{ print $2 }'|xargs git add

Reiniciar

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD

5

Soy el autor del proyecto G2, un entorno amigable para el amante de la línea de comandos git.
Obtenga el proyecto de github - G2 https://github.com/orefalo/g2

Tiene un montón de comandos útiles, uno de ellos es exactamente lo que estás buscando: freeze

congelar - Congelar todos los archivos en el repositorio (adiciones, eliminaciones, modificaciones) al área de preparación, organizando así ese contenido para su inclusión en la próxima confirmación. También acepta una ruta específica como parámetro


5

Para la nueva versión de Git.

Lo intenté git add -Ay esto provocó,

advertencia: El comportamiento de 'git add --all (o -A)' sin argumento de ruta desde un subdirectorio del árbol cambiará en Git 2.0 y ya no debería usarse. Para agregar contenido para todo el árbol, ejecute:

git add --todos: / (o git add -A: /)

Para restringir el comando al directorio actual, ejecute:

git add --todos. (o git add -A.)

Con la versión actual de Git, el comando está restringido al directorio actual.


Luego intenté a continuación lo que funcionó .

git add --all :/

3

De la documentación de Git a partir de la versión 2.0:

Para agregar contenido para todo el árbol, ejecute:

git add --all :/

o

git add -A :/

Para restringir el comando al directorio actual, ejecute:

git add --all .

o

git add -A .

2

Utilizo la siguiente línea para agregar para organizar todos los archivos modificados y recién creados, excepto los que figuran en .gitignore:

git add $(git ls-files -mo --exclude-standard)

(la sintaxis $ () es para el shell bash). Supongo que la opción de línea de comando -mod debería agregar también los archivos eliminados ... O, si tiene nombres de archivo con espacios en blanco incrustados, la siguiente línea debería hacer el truco:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
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.