2010-07-23 22 views
16

Deseo detener el seguimiento de archivos pero aún así mantenerlos en mi árbol de trabajo.Will git-rm - caché eliminar los archivos de árbol de trabajo de otro usuario cuando extraen

He comprobado que git rm --cached FILE me permitirá hacerlo. Sin embargo, si alguien más realiza este cambio, ¿se borrarán sus copias locales?

+0

En combinación con agregarlos a su .gitignore, ¡espero! – Cascabel

+0

Sí. Lo que me hace preguntarme qué pasa si los agregas a gitignore y no los recibes ... – rod

+0

esto seguramente fue discutido en las otras preguntas; lo que sucede es ... nada. –

Respuesta

8

Sí, sus copias se eliminarán automáticamente. Imagínese si esta eliminación no ocurriera, entonces las copias de trabajo de todos los usuarios se contaminarían con montones de archivos eliminados, que ya no son necesarios.

Sin embargo, si los usuarios remotos realizaron cambios locales a estos archivos, no se eliminarán, ya que pull dará como resultado un conflicto de combinación.

Como Jefromi sugiere en su comentario, mientras que los archivos se eliminan en los lados de los otros usuarios, se pueden restaurar fácilmente - están bajo un control de versión, ¿verdad? ;-) Los archivos se pueden obtener por git checkout <revision> -- <files...>. A medida que la revisión puede especificar el ID de la confirmación anterior, para la tracción ya se ha guardado en ORIG_HEAD (ver this question para más detalles):

git checkout ORIG_HEAD -- removed_file 
+1

Y si la extracción no entra en conflicto, pero quieren recuperar los archivos, todo lo que tienen que hacer es 'git checkout HEAD^'. – Cascabel

+0

Gracias, eso es lo que necesitaba saber. Dedos cruzados No eliminé ningún archivo vital de xcode en los directorios de trabajo de mis colegas. – rod

1

En tal caso yo bien les haría caso localmente solamente:

Si ya se realiza un seguimiento:

git update-index --skip-worktree FILE 

si untracked: añadirlos a su local de excluir archivos

echo "FILE" >> .git/info/exclude 

También puede tener .gitignore global si es algo que hará para todos sus repositorios (p. * ~)

Cuestiones relacionadas