git add only modified changes and ignore untracked files

Ejecuté "git status" y se enumeran a continuación son algunos archivos que fueron modificados / o bajo el título "los cambios no se han puesto en escena para cometer". También se enumeran algunos archivos sin seguimiento que quiero ignorar (tengo un archivo ".gitignore" en estos directorios).

Quiero poner los archivos modificados en la puesta en escena para que pueda confirmarlos. Cuando ejecuté "git add .", agregó los archivos modificados Y los archivos que quiero ignorar a la puesta en escena.

¿Cómo puedo añadir sólo los archivos modificados e ignorar los archivos sin seguimiento si se presenta con el estado de git a continuación.

También, son mis ".gitignore" archivos de trabajo correctamente?

$ git status
# On branch addLocation
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   someProject/path/domain/viewer/LocationDO.java
#       modified:   someProject/path/service/ld/LdService.java
#       modified:   someProject/path/service/ld/LdServiceImpl.java
#       modified:   someProject/path/web/jsf/viewer/LocationFormAction.java
#       modified:   someProject/war/WEB-INF/classes/message/viewer/viewer.properties
#       modified:   someProject/war/page/viewer/searchForm.xhtml
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .metadata/
#       someProject/build/
no changes added to commit (use "git add" and/or "git commit -a")
Solución

Lo ideal sería que su .gitignore impidiera que los archivos no rastreados ( e ignorados) se mostraran en el estado, se añadieran con git add, etc. Así que le pido que corrija su .gitignore.

Puedes hacer git add -u para que escale los archivos modificados y borrados.

También puede hacer git commit -a para confirmar sólo los archivos modificados y eliminados.

Ten en cuenta que si tienes Git de una versión anterior a la 2.0 y usas git add ., entonces tendrás que usar git add -u . (Ver "Diferencia de "git add -A" y "git add ."").

Comentarios (7)

Esto me ha funcionado:

#!/bin/bash

git add `git status | grep modified | sed 's/\(.*modified:\s*\)//'`

O incluso mejor:

$ git ls-files --modified | xargs git add
Comentarios (7)

No has dicho cuál es tu .gitignore, pero un .gitignore con el siguiente contenido en tu directorio raíz debería funcionar.

.metadata
build
Comentarios (2)