tag practices delete create crear best git git-rm

practices - git rename tag



Git rm varios archivos? (9)

En Windows 10, use Git Bash, desde la ubicación .gitignore en su estructura de archivos.

git rm -r --cached some_directory/

Solo utilicé esto para ignorar todo un directorio, recursivamente. Esto es lo que está en mi archivo .gitignore para esto:

# Use .gitignore to ignore a directory and its contents # /some_directory/

¿Cómo elimino fácilmente varios archivos sin escribir manualmente las rutas completas de todos ellos para git rm ? Tengo un montón de archivos modificados que me gustaría seguir así que eliminar todos los modificados tampoco es posible.

¿Y también es posible revertir los cambios de varios archivos sin escribir manualmente git checkout -- /path/to/file ?


En los sistemas POSIX, puede crear un shell glob que coincidirá con todos los archivos deseados, simplemente puede pasarlo a git rm y git checkout -- . En Windows, cmd.exe y PowerShell no incluyen agrupación y agrupación en las aplicaciones (git no lo hace para archivos, de lo que he leído). Necesitaría usar un comando o secuencia de comandos de Windows para preparar una lista de archivos y canalizarla a sus comandos git adecuadamente para obtener un efecto similar.

Cualquier estrategia que usaría para pasar una lista de archivos a un comando de shell funcionará para los comandos git que aceptan rutas de archivos.


Me pareció molesto el manejo de los comodines por parte de git rm . Encontrar puede hacer el truco en una línea: find . -name ''*.c'' -exec git rm {} /; find . -name ''*.c'' -exec git rm {} /; La {} es donde se sustituirá el nombre del archivo. Lo mejor de find es que puede filtrar en una gran variedad de atributos de archivo, no solo en el nombre.


Para eliminar varios archivos a la vez, es posible que desee revisar la respuesta here

Puede eliminar los archivos que no desea y ejecutar este comando: git rm $(git ls-files --deleted)


Puedes dar comodines a git rm .

p.ej

git rm *.c

O simplemente puede escribir los nombres de todos los archivos en otro archivo, por ejemplo, filesToRemove.txt :

path/to/file.c path/to/another/file2.c path/to/some/other/file3.c

Puedes automatizar esto:

find . -name ''*.c'' > filesToRemove.txt

Abra el archivo y revise los nombres (para asegurarse de que esté bien).

Entonces:

cat filesToRemove.txt | xargs git rm

O:

for i in `cat filesToRemove.txt`; do git rm $i; done

Consulte la página de manual de xargs para obtener más opciones (especialmente si hay demasiados archivos).


Simplemente elimínelos usando cualquier otro método (Explorer, lo que sea), luego ejecute git add -A . En cuanto a revertir varios archivos, también puede retirar un directorio.


Simplemente puede utilizar:

git add -u


Simplemente usas

find . -name ''*.DS_Store'' | xargs git rm

para eliminar muchos archivos coinciden con los comodines.


También puede consultar Cygwin , ya que proporciona gran parte de la funcionalidad Unix / Linux / * BSD en Windows. Cygwin incluye un shell Bash y find (1), entre otras herramientas mencionadas anteriormente. (Por lo general, tengo 2-4 terminales menta de Cygwin al mismo tiempo en Windows 7 porque encuentro a Cygwin tan útil).