Tengo muchos files sin seguimiento. Estoy bastante seguro de que la mayoría de ellos puedo eliminar, sin embargo … ya sabes, la copy de security podría ser útil;)
¿Qué estás haciendo en una situación similar?
El siguiente command creará un file tar en su directory de inicio de todos los files no rastreados (y no ignorados) en su directory:
git ls-files --others --exclude-standard -z | xargs -0 tar rvf ~/backup-untracked.tar
Si vas a utilizar esta técnica, comtesting cuidadosamente que git ls-files --others --exclude-standard
por sí solo produce la list de files que esperas!
Algunas notas sobre esta solución pueden estar en order:
He usado -z
para get git ls-files
para generar la list de files con NUL
(un byte cero) como el separador entre files, y el parámetro -0
para xargs
le dice que considere NUL
como el separador entre los parameters lee de la input estándar. Este es un truco estándar para tratar con la posibilidad de que un nombre de file contenga una nueva línea, ya que los únicos dos bytes que no están permitidos en los nombres de file en Linux son NUL
y /
.
Si tiene una gran cantidad de files sin xargs
, xargs
ejecutará el command tar
más de una vez, por lo que es importante que le haya dicho a tar
que añada files ( r
) en lugar de crear un nuevo file ( c
); de lo contrario, las invocaciones posteriores tar
sobrescribirá el file creado justo antes.
En general, si alguna vez van a ser útiles, ¡entonces debe registrarlos! Si no los necesita en este momento, ¡revíselos y elimínelos! IE, seguirlos como files eliminados. De esta forma, siempre podrá recuperarlos más tarde si decide que los necesita.
Recuerde, una regla fundamental de usar un sistema de control de versiones es "rastrear todo ". Pequeños cambios, cambios interrumpidos (en una twig), etc. Nunca se sabe cuándo podría necesitar esos files o cambios de nuevo, así que use su sistema de VC para asegurarse de no perderlos.
Usa git-stash , pero primero tienes que rastrearlos. Si se ignoran explícitamente, no se agregarán.
git add . git stash
Ahora todos los files sin seguimiento están escondidos y han desaparecido del directory de trabajo. Si esto fue incorrecto, use git stash pop
, agregue y confirme los que desea conservar, y repita.
git ls-files –modified -z | xargs -0 tar rvf ~ / test-model-integration / backup-untracked.tar
Bueno, el command anterior funcionó para mí.