working revertir que preparados para ignorar hace deshaciendo clean cambios archivo git vim ignore temporary-files

revertir - ignorar cambios git



git ignora los archivos temporales de vim (10)

¿Cuál es la forma correcta de hacer que git ignore los archivos temporales producidos por vim en todos los directorios (ya sea globalmente en todo el sistema o localmente para un solo proyecto)?


Alternativamente, puede configurar vim para guardar los archivos de .vimrc en una ubicación separada, por ejemplo, agregando líneas similares a las siguientes a su archivo .vimrc :

set backupdir=$TEMP// set directory=$TEMP//

Ver este consejo vim para más información.


Encontré que esto hará que git ignore los archivos temporales creados por vim:

[._]*.s[a-w][a-z] [._]s[a-w][a-z] *.un~ Session.vim .netrwhist *~

También se puede ver here .


Esto es algo que solo se debe hacer por usuario, no por repositorio. Si Joe usa emacs, querrá que se ignoren los archivos de copia de seguridad de emacs, pero Betty (que usa vi) querrá que se ignoren los archivos de copia de seguridad vi (en muchos casos, son similares, pero existen aproximadamente 24.893 editores comunes y es bastante ridículo tratar de ignorar todas las diversas extensiones de copia de seguridad.)

En otras palabras, no ponga nada en .gitignore o en core.excludes en $GIT_DIR/config . Coloque la información en $HOME/.gitconfig en $HOME/.gitconfig lugar (como sugiere nunopolonia con --global ). Tenga en cuenta que "global" significa por usuario, no por sistema.

Si desea la configuración a través del sistema para todos los usuarios (lo que no es así), necesitará un mecanismo diferente. (Posiblemente con la configuración de plantillas antes de la inicialización del repositorio).


Los archivos temporales de Vim terminan con ~ para que pueda agregar al archivo .gitignore la línea

*~

Vim también crea archivos de intercambio que tienen las extensiones swp y swo. Para eliminar esas líneas utilizamos las líneas:

*.swp *.swo

Esto ignorará todos los archivos temporales de vim en un solo proyecto

Si desea hacerlo de forma global, puede crear un archivo .gitignore en su casa (puede darle otro nombre o ubicación) y usar el siguiente comando:

git config --global core.excludesfile ~/.gitignore

Luego, solo necesita agregar los archivos que desea ignorar a ese archivo


Por supuesto,

solo tiene que crear un ".gitignore" en el directorio de inicio de su proyecto y debe contener

*.swp

Eso es

en una orden

project-home-directory$ echo ''*.swp'' >> .gitignore


Salga de vim antes de "git commit".

para hacer que vim use otras carpetas para los archivos de copia de seguridad, ( /tmp por ejemplo):

set bdir-=. set bdir+=/tmp

para hacer que vim deje de usar la carpeta actual para archivos .swp:

set dir-=. set dir+=/tmp

Usar -=, += sería generalmente bueno, porque vim tiene otros valores predeterminados para bdir, dir , no queremos borrar todo. Verifique la ayuda de vim para más información sobre bdir, dir :

:h bdir :h dir


Si está utilizando control de código fuente. Los archivos temporales de vim son bastante inútiles.
Así que es posible que desee configurar vim para no crearlos.

Solo edita Tu ~ / .vimrc y agrega estas líneas:

set nobackup set noswapfile


También recomendaría pensar en ignorar archivos como:

.*.swp .*.swo

ya que puede tener archivos que terminan con .swp


Here está el código VIM real que genera las extensiones de archivo de intercambio:

/* * Change the ".swp" extension to find another file that can be used. * First decrement the last char: ".swo", ".swn", etc. * If that still isn''t enough decrement the last but one char: ".svz" * Can happen when editing many "No Name" buffers. */ if (fname[n - 1] == ''a'') /* ".s?a" */ { if (fname[n - 2] == ''a'') /* ".saa": tried enough, give up */ { EMSG(_("E326: Too many swap files found")); vim_free(fname); fname = NULL; break; } --fname[n - 2]; /* ".svz", ".suz", etc. */ fname[n - 1] = ''z'' + 1; } --fname[n - 1]; /* ".swo", ".swn", etc. */

Esto generará archivos de intercambio del formato:

[._]*.s[a-v][a-z] [._]*.sw[a-p] [._]s[a-v][a-z] [._]sw[a-p]

Que es más o menos lo que está incluido en el propio archivo gitignore de github para here .

Como otros han señalado correctamente, este .gitignore también ignorará los archivos de imagen .svg y los archivos flash adobe .swf .


# VIM: Temperory files *~ # VIM: Swap-files [._]*.s[a-w][a-z] [._]s[a-w][a-z] # VIM: Commands :cs, :ctags tags cscope.* # VIM session Session.vim # VIM: netrw.vim: Network oriented reading, writing, browsing (eg: ftp scp) .netrwhist

El nombre del archivo de intercambio normalmente es el mismo que el archivo que está editando, con la extensión ".swp".

  • En Unix, un ''.'' está preparado para intercambiar nombres de archivos en el mismo directorio que el archivo editado. Esto evita que el archivo de intercambio se muestre en una lista de directorios.
  • En las máquinas de MS-DOS y cuando la opción ''shortname'' está activada, cualquiera ''.'' en el nombre del archivo original se reemplaza con ''_''.
  • Si este archivo ya existe (por ejemplo, cuando se está recuperando de un bloqueo) se da una advertencia y se usa otra extensión, ".swo", ".swn", etc.
  • Un archivo existente nunca será sobrescrito.
  • El archivo de intercambio se elimina tan pronto como Vim deja de editar el archivo.

El reemplazo de ''.'' con ''_'' se hace para evitar problemas con los sistemas de archivos compatibles con MS-DOS (por ejemplo, crossdos, multidos).

vimdoc.sourceforge.net/htmldoc/recover.html

http://www.vim.org/scripts/script.php?script_id=1075