Usar git add
git-add - Añadir contenido de un fichero al índice
Éste comando actualiza el índice usando el contenido actual encontrado en el árbol de trabajo, para alistar el contenido preparado para la siguiente confirmación. Típicamente agrega el contenido actual a las rutas existentes como un todo, pero con algunas opciones puede usarse también para agregar contenido con sólo una parte de los cambios hechos a los ficheros del árbol de trabajo, o quitar rutas que ya no existen en el árbol de trabajo.
Opciones
<pathspec>…
Ficheros para agregar contenido. Se pueden proporcionar globs (ej. *.c
) para agregar todos los ficheros coincidentes. También se puede proporcionar un nombre de directorio inicial (ej. dir
para añadir dir/file1
y dir/file2
) para actualizar el índice para coincidir con el estado actual del directorio como un todo (ej. especificando dir
registrará no sólo el fichero dir/file1
modificado en el árbol de trabajo, un fichero dir/file2
agregado al árbol de trabajo, pero también a fichero dir/file3
eliminado del árbol de trabajo).
-n --dry-run
Realmente no añade los ficheros. Sólo muestra si existen o se ignorarán.
-v --verbose
Mostrar más detalles.
-f --force
Permitir añadir ficheros que normalmente se ignoran.
--sparse
Permitir la actualización de entradas de índice fuera del cono de pago disperso. Normalmente, git add
se niega a actualizar las entradas del índice cuyas rutas no se ajustan al cono de pago disperso, ya que esos archivos pueden eliminarse del árbol de trabajo sin previo aviso.
-i --interactive
Agregar interactivamente al índice contenido modificado en el árbol de trabajo. Se pueden proporcionar argumentos opcionales de ruta para limitar la operación a un subconjunto del árbol de trabajo.
-p --patch
Interactivamente elige pedazos de parche entre el índice y el árbol de trabajo y los agrega al índice. Esto le da al usuario la oportunidad de revisar la diferencia antes de agregar contenido modificado al índice.
Esto ejecuta efectivamente add --interactive
, pero omite el menú inicial del comando saltando directamente al subcomando patch
.
-e --edit
Abre la diferencia frente al índice en un editor y permite al usuario editarlo. Después de cerrar el editor, ajusta los encabezados de los fragmentos y aplica el parche al índice.
La intención de ésta opción es seleccionar y elegir líneas del parche a aplicar, o incluso para modificar el contenido de las líneas a ser preparadas. Esto puede ser mas rápido y mas flexible que usar el selector de pedazos interactivo; sin embargo, es fácil confundirse uno mismo y crear un parche que no aplica al índice.
-u --update
Actualizar el índice justo donde ya tiene una entrada que coincide con <pathspec>. Esto tanto elimina como modifica entradas de índice para coincidir el árbol de trabajo, pero no agrega ficheros nuevos.
Si no se proporciona <pathspec> cuando se usa la opción -u
, todos los ficheros rastreados en árbol de trabajo entero son actualizados (versiones antiguas de Git solían limitar la actualización al directorio actual y sus subdirectorios).
-A --all --no-ignore-removal
Actualizar el índice no sólo donde el árbol de trabajo tiene ficheros coincidentes con <pathspec> sino también donde el índice ya tiene una entrada. Esto agrega, modifica, y elimina entradas del índice para que coincida con el árbol de trabajo.
Si no se proporciona <pathspec> cuando se usa la opción -A
, todos los ficheros en el árbol de trabajo entero son actualizados (versiones antiguas de Git solían limitar la actualización al directorio actual y sus subdirectorios).
--no-all --ignore-removal
Actualizar el índice agregando ficheros nuevos que son desconocidos por el índice y ficheros modificados en el árbol de trabajo, pero ignora ficheros que han sido eliminados del árbol de trabajo. Esta opción es una no-operación cuando no se usa <especificación-de-ruta>.
Esta opción es primordialmente para ayudar a los usuarios acostumbrados a versiones antiguas de Git, donde "git add <pathspec>…" era un sinónimo de "git add --no-all <pathspec>…", ej. ficheros eliminados ignorados.
-N --intent-to-add
Registrar sólo el hecho de que la ruta será añadida posteriormente. Una entrada para la ruta es colocada en el índice sin contenido. Esto es útil para, entre otras cosas, mostrar el contenido unstaged de tales ficheros con git diff
y confirmándolos con git commit -a
.
--refresh
No añade los ficheros. Sólo renueva su información stat() en el índice.
--ignore-errors
Si algunos ficheros no pueden ser agregados por errores al indexarlos, no aborte la operación, sino que continúe agregando los otros. El comando aún deberá salir con un estatus no-cero. La variable de configuración add.ignoreErrors
puede ser asignada a true para hacerlo el comportamiento predeterminado.
--ignore-missing
Esta opción sólo puede ser usada junto con --dry-run. Al usar esta opción el usuario puede verificar si alguno de los ficheros dados debería ser ignorado, sin importar si ya están o no presentes en el árbol de trabajo.
--no-warn-embedded-repo
Predeterminadamente, git add
advertirá cuando se agregue un repositorio incrustado al índice sin que se use git submodule add
para crear una entrada en .gitmodules
. Esta opción omitirá la advertencia (ej. si haces operaciones manuales en submódulos).
--renormalize
Aplicar el proceso "clean" de nuevo a todos los ficheros en seguimiento para ser forzados a ser agregados nuevamente al índice. Esto es útil después de cambiar la configuración de core.autocrlf
o el atributo text
, con el fin de corregir ficheros agregados con finales de línea CRLF/LF equivocados. Esta opción implica -u
. Los caracteres CR solos no se tocan, de modo que mientras CRLF corrige a LF, una secuencia CRCRLF solo es parcialmente corregida a CRLF.
--chmod=(+|-)x
Sobreescribir el bit de ejecutable en los ficheros añadidos. El bit de ejecutables sólo se cambia en el índice, los ficheros en disco se dejan sin cambio.
--pathspec-from-file=<fichero>
--pathspec-file-nul
Sólo significativo con --pathspec-from-file
. Los elementos de la especificación de ruta se separan con el caracter NUL y todos los otros caracteres se toman literalmente (incluyendo saltos de línea y entrecomillados).
--
Este opción puede ser usada para separar las opciones de línea de comandos de la lista de ficheros; útil cuando los nombres de ficheros se pueden confundir por opciones de línea de comandos.
Opciones comunes
Preparar todos los cambios en <file>
para la próxima confirmación.
Preparar todos los cambios en <directory>
para la próxima confirmación.
Comenzar una sesión de preparación interactiva que permita elegir partes de un archivo para agregar al siguiente commit. Esto presentará una parte de los cambios y solicitará un comando. Usar y
para organizar el fragmento, n
para ignorar el fragmento, s
para dividirlo en fragmentos más pequeños, e
para editar manualmente el fragmento y q
para salir.
EJEMPLOS
Añadir el contenido de todos los ficheros
*.txt`del directorio `Documentation
y sus subdirectorios:Nota: En éste ejemplo el asterisco
*
se entrecomilla desde el shell; esto permite al comando incluir ficheros de subdirectorios del directorioDocumentación/
.Considerar añadir el contenido de todos los scripts git-*.sh:
Debido a que este ejemplo deja a la shell que interprete el asterisco (se está listando específicamente los ficheros), no tiene en cuenta
subdir/git-foo.sh
.Cuando se comienza un nuevo proyecto,
git add
cumple la misma función quesvn import
. Para crear una confirmación inicial del directorio actual, use los siguientes dos comandos:Una vez que se tenga el proyecto en funcionamiento, se pueden agregar nuevos archivos pasando la ruta a
git add
:
Los comandos anteriores también se pueden usar para registrar cambios en archivos existentes. Una vez más, Git no diferencia entre la preparación de cambios en archivos nuevos y los cambios en archivos que ya se agregaron al repositorio.
Enlaces de referencia:
Last updated