Cuando hago un git status
me sale una lista de archivos con el prefijo new file:
. ¿Cómo puedo obtener solo esta lista? Quiero procesar estos archivos en un bucle simple en un pequeño script de shell.git: Lista de los nuevos archivos sólo
Respuesta
me gustaría utilizar algo así como git status --porcelain | grep "^A" | cut -c 4-
Son años más tarde, pero esto ya no funciona para mí (la salida de 'git status' probablemente ha cambiado). ** EDITAR: ** Bah. No lo había agregado/comprometido. Soporta la prueba del tiempo! – Hendy
Puede usar git status --short para obtener la lista de archivos.
Esto no debe pasarse por alto. – jarederaj
No utilice grep para analizar la salida de git. Es casi seguro que Git tiene las cosas que estás buscando integradas (excepto si vas a buscar cosas realmente avanzadas).
Puede usar git diff
para mostrar los cambios. --name-only
muestra solo los nombres de archivo. --diff-filter=A
enumera solo los archivos agregados.
Si quieres ver los nuevos archivos que ya se haya añadido a la utilización índice --cached
, de lo contrario omitirlo. Para ver ambos diff a HEAD
.
Los comandos se ven así:
git diff --name-only --diff-filter=A --cached # All new files in the index
git diff --name-only --diff-filter=A # All files that are not staged
git diff --name-only --diff-filter=A HEAD # All new files not yet committed
diff-filtro es realmente el camino a seguir :) –
Es muy desafortunado que el PO no acepta esta respuesta, al igual que en mi humilde opinión, tienes toda la razón. :) –
En lugar de analizar la salida de "git status", es probable que sea más elegante de utilizar
git ls-files -o --exclude-standard
Al igual que con git status
, ls-files
producirá salida en relación con su directorio actual de trabajo.
Es posible que desee incluir la opción --full-name
:
git ls-files -o --exclude-standard --full-name
OP pidió enumerar nuevos archivos y esta respuesta no requiere ningún otro programa para canalizar la salida. Encontré en mac git diff no funcionó con los filtros como se esperaba mientras esto :) :) –
Este es claramente el ganador. Funciona en nuevos directorios que contienen todos los archivos nuevos. – Ali
Sin embargo, tenga en cuenta que esto no funciona desde subdirectorios. Terminé usando 'diff' git para hacer mi trabajo de la escritura de cada directorio en el repositorio: ' $ git diff --name sólo --diff-filter = A HEAD' –
Lista de archivos nuevos o para obtener los archivos que se añade a git, se puede conseguir usando git status y el comando grep como git status -s | grep ??
[email protected]:~/project-repo-directory# git status -s | grep ??
?? src/.../file1.js
?? src/.../file2.js
?? src/.../file3.js
....
git status | grep "new file:" | cut -c 14-
git status | grep "modified:" | cut -c 14-
- 1. Lista GIT de archivos nuevos/modificados/eliminados
- 2. Git - Agregar todos los archivos nuevos en el repos
- 3. Git diff --name sólo y copiar esa lista
- 4. ¿Puede cometer Git "versiones vacías" de archivos nuevos?
- 5. copia por lotes sólo los archivos modificados
- 6. ¿Por qué no se compromete git -a agregar nuevos archivos?
- 7. git add. -> todavía "nada para comprometer" con nuevos archivos
- 8. ¿Git -X "theirs" no maneja los conflictos de archivos nuevos/eliminados?
- 9. Git: cómo obtener todos los archivos modificados y nuevos en una carpeta o zip?
- 10. git: lista de todos los archivos modificados incluidos los de los submódulos
- 11. Powershell Copy-Item pero sólo copiar los archivos modificados
- 12. Git no init/sincronización/actualizar nuevos submódulos
- 13. Vim (Windows): los nuevos archivos de ayuda no funcionan
- 14. defecto usando directivas en los nuevos archivos de C#
- 15. Git ignora los archivos eliminados
- 16. Git - Seguimiento automático de todos los archivos en un directorio
- 17. Git: Lista de todos los cambios sin combinar en git
- 18. Recuperando archivos de los objetos de Git
- 19. TFS obtén la última versión con los archivos nuevos
- 20. ¿Cómo comprometer solo archivos modificados (y no nuevos o eliminados)?
- 21. submódulo git los archivos modificados de estado
- 22. diff de subversión que incluye archivos nuevos
- 23. ¿Cómo hacer una lista de archivos versionados en git?
- 24. Carga de archivos nuevos en un repositorio git directamente a través de la aplicación web github
- 25. En forzosa, ¿cómo elimino los cambios pendientes para los archivos NUEVOS/AÑADIDOS que no se enviaron?
- 26. Comparta el trabajo sin terminar (archivos sin confirmar y nuevos) a través de Git
- 27. ¿Los objetos nuevos están obsoletos?
- 28. git lista todos los comandos disponibles
- 29. Git: Ignorar sólo el contenido de la carpeta
- 30. SVN Exportar carpeta de archivos Sólo
Ha intentado 'grep'? 'estado de git | grep nuevo archivo'. – Zeta
Sí, pero eso no me da los nombres de archivo sin formato. – BetaRide
Prefiero usar 'git ls-files demás --exclude-standard' (http://stackoverflow.com/a/2299448/6309) – VonC