Estoy usando Gedit, y cada vez que guardo un archivo, Gedit crea una copia y el nombre de la copia siempre termina con un ~. El problema es que Git siempre intenta rastrear estos archivos, ¡y yo no quiero eso! ¿Hay alguna forma de poder usar git add .
, pero agregue solo los archivos que no terminan con ~?¿Cómo evitar que git rastree todos los archivos que terminan con un "~"?
Respuesta
Quiere un gitignore file.
Si quiere destruir todo lo que termine con una tilde (que debería ser seguro, no puedo imaginar un caso de uso razonable donde sea malo), asegúrese de que la siguiente línea esté en su archivo .gitignore
en la parte superior de jerarquía de carpetas de tu repositorio:
*~
Si también quieren deshacerse de esos archivos tilde por ahí en su sistema de archivos local, se puede. Sería mejor hacer que Gedit coloque sus archivos de respaldo en otro lugar. JEdit y VIm, los dos editores que uso más, have such settings, y es mucho más limpio guardarlos en otro lugar que cargar Gitignore.
Desafortunadamente, Gedit no tiene esa opción. Lo mejor que puede hacer es desactivar las copias de seguridad ~
. Antes de preocuparse, el peor caso es que pierde lo que estaba en el archivo immediately before you saved. Ese no es el peor de los casos, es por eso que tienes esto en un repositorio git, ¿verdad?
NOTA: Si desea mantener localmente los archivos con sufijo ~
, hágalo. El .gitignore que configuró, arriba, evitará que los comparta accidentalmente.
You can turn off ~
suffixed backups like this
Para evitar Gedit desde la creación de estas copias de seguridad en el futuro, abrir Gedit, abrir el diálogo Preferencias (Edición> Preferencias), seleccione la ficha Editor, quite la marca en el “Crear una copia de seguridad de los archivos antes de guardar "opción, y haga clic en Cerrar. Después de hacer esto, Gedit ya no realizará las copias de seguridad con tildes por todos lados.
¿Por qué querrías desactivar las copias de seguridad? Me han salvado innumerables veces en el pasado. – suvayu
Bueno, obviamente para eliminar las tildes, pero estoy de acuerdo contigo (ver arriba). Quería encontrar una manera de mover todos los archivos de copia de seguridad a un directorio específico, como en VIm (utilizo una línea 'set backupdir = C: \\ vimBackups' en mi vimrc en Windows, por ejemplo), pero eso no parece existir para Gedit. Pero mira arriba. *Fijo*. – ruffin
Bajista anónimo: ¿te importa explicarlo? ¿Hay ahora una mejor manera de que Gedit guarde los archivos de copia de seguridad que no dejan artefactos en su sistema de archivos? – ruffin
gitignore es el camino a seguir. Simplemente agregue *~
al .gitignore
en la raíz de su repositorio.
Esta es una solución mejor porque es complicado configurar cada uno de los programas para que no creen '~' archivos (por ejemplo, emacs). –
@TahirHassan Pero mejor solución ... ¿qué? Lo primero que sugerí fue crear un archivo .gitignore. Si * también * desea limpiar su repositorio local para que no tenga '~' archivos en todas partes, * también * explico cómo hacerlo. ; ^) Realmente no estás jugando sin una red al hacerlo. Solo se guarda una edición atrás con los archivos tilde, y eso no es mucha ayuda práctica cuando ya está usando git. Dicho esto, @filmor me ganó para decirme que OP debería usar .gitignore por unos segundos ... – ruffin
¿por qué preocuparse de añadir un archivo .gitignore
cuando se puede editar el archivo de texto plano .git/info/exclude
. "Al decidir si desea ignorar un camino, git comprueba normalmente patrones gitignore de múltiples fuentes" https://www.kernel.org/pub/software/scm/git/docs/gitignore.html
Si agrega *~
a una línea en el archivo .git/info/exclude
en su repositorio git. Git ignorará ese patrón y todos los archivos que terminan en tildes.
¿Por qué se bajó este valor? –
No soy de los que van a votar, pero es una mala respuesta, la carpeta ".git" no se comparte con todos los usuarios del repositorio, el archivo .gitignore sí (de forma predeterminada, podría cambiarse en un proyecto específico. .). por lo general * ~ los archivos son archivos temporales de copia de seguridad y no desea que nadie los agregue por error, por lo que debe establecerse para todos los usuarios del repositorio. – user2326568
Para añadir a lo @filmor Dicho esto, puede crear un archivo de gitignore global para que todos los repositorios ignorarán los archivos de copia de seguridad:
git config --global core.excludesfile ~/.gitignore_global
Esto le indicará a Git que busque en su camino para un $ HOME .gitignore_global
archivo, que es donde puede colocar la regla *~
.
- 1. git crea archivos que terminan en ~?
- 2. ¿Cómo encontrar todos los archivos que terminan en .rb con Linux?
- 3. Cómo eliminar todos los archivos que terminan en ~ creado por Emacs
- 4. ¿Cómo eliminar todos los archivos que NO terminan en ciertos formatos?
- 5. ¿Cómo puedo ignorar todos los archivos excepto los que tienen cierta extensión en git?
- 6. En Eclipse, oculte los archivos que terminan en tilde `~`
- 7. ¿Puedo hacer que Git me diga todos los archivos que un usuario ha modificado?
- 8. ¿Cómo evitar que git haga archivos no ejecutables en cygwin?
- 9. GIT: Quiero unstage todos los archivos que coinciden con un patrón determinado
- 10. git piensa que los archivos han cambiado
- 11. ¿Cómo hago que vim abra todos los archivos que coincidan con un patrón en diferentes pestañas?
- 12. ¿Cómo puedo listar los archivos que no terminan con una nueva línea?
- 13. Ignorar todos los archivos con el mismo nombre en git
- 14. ¿Cómo hacer para que mi caleidoscopio integrado con git muestre todos los archivos que están a punto de comprometerse?
- 15. Evitar que Git cambie los permisos en pull
- 16. git: ¿Cómo puedo agregar recursivamente todos los archivos en un subárbol de directorio que coinciden con un patrón global?
- 17. ¿Cómo puedo reescribir el historial para que todos los archivos, excepto los que ya he movido, estén en un subdirectorio?
- 18. ¿Cómo haces que Git ignore los archivos sin usar .gitignore?
- 19. Eliminar e ignorar todos los archivos que tienen una extensión desde un repositorio git
- 20. ¿Cómo obtener una lista de todos los archivos que cambiaron entre dos confirmaciones de Git?
- 21. Cómo hacer que `git log --stat - <path>` muestre * todos * los archivos en commits seleccionados?
- 22. ¿Cómo hacer que mercurial ignore todos los archivos ocultos?
- 23. Cómo evitar que git stash elimine los cambios en los archivos con el bit "asumir sin cambios"?
- 24. Buscar asignaciones que modifican nombres de archivos que coinciden con un patrón en un repositorio GIT
- 25. Listar todos los archivos que alguna vez existieron en un repositorio de Git
- 26. métodos que terminan en Scala _ =
- 27. Globing con ls para encontrar todos los archivos que coinciden con un determinado patrón
- 28. Git - Seguimiento automático de todos los archivos en un directorio
- 29. cómo decirle a gradle que descargue todos los archivos fuente
- 30. ¿Es posible que todos los comandos "git diff" usen la "diferencia de Python" en todos los proyectos de git? Cuando
No, no es necesario Arthur Denting. Por lo que sé, es válido gitignore .gitignore; Usualmente lo hago – ruffin
Re: Editar. No es necesariamente una buena idea ignorar .gitignore. Estoy bastante seguro de que estas configuraciones son útiles en cualquier lugar donde clones tu repositorio. Ponemos nuestra ignorancia en control de versiones y estamos muy contentos con eso, porque solo un desarrollador necesita configurarlo. –
Gracias @MarcinK, no pensé en eso. – corazza