Estoy tratando de administrar neovim
mi init.vim
con git. Quiero ignorar todo excepto el init.vim
en la misma carpeta que el .gitignore
y un kalisi.vim
en el directory
/bundle/vim-airline/autoload/airline/themes/
Este es mi actual .gitignore
:
# Ignore everything * # Exceptions !.gitinore !init.vim !bundle bundle/* !bundle/vim-airline bundle/vim-airline/* !bundle/vim-airline/autoload bundle/vim-airline/autoload/* !bundle/vim-airline/autoload/airline bundle/vim-airline/autoload/airline/* !bundle/vim-airline/autoload/airline/themes bundle/vim-airline/autoload/airline/themes/* !bundle/vim-airline/autoload/airline/themes/kalisi.vim
Mis pensamientos sobre esto:
Ignora todo: *
Excepto este .gitignore
!.gitgnore
Y el init.vim
en el mismo directory !init.vim
Además, no ignore el bundle
carpetas bundle
!bundle
Pero todo en él: bundle/*
Excepto la carpeta vim-airline
!vim-airline
Creo que entiendes la idea …
Pero si ejecuto el git status
ahora solo obtengo el bundle/
como file sin seguimiento. ¿No debería get kalisi.vim
o bundle/vim-airline/autoload/airline/themes/kalisi.vim
?
Estoy esperando una forma más elegante de ser honesto. También escuché sobre la colocación de múltiples .gitignore
en los directorys, pero los subdirectorys son todos proyectos con su propio .gitignore
y esto crearía una gran cantidad de trabajo para no solo ignorar el .gitignore
correcto.
Espero que alguien tenga una idea de qué hacer, actualmente parece que se sigue el directory del bundle/
, pero no el contenido que quiero …
Como mencioné en " ¿Cómo agrego files sin puntos en ellos (todos los files sin extensión) al file gitignore? ", Hay una regla para recordar con .gitignore
:
No es posible volver a include un file si se excluye un directory principal de ese file. ( †
)
( †
: a less que se cumplan ciertas condiciones en git 2.7+)
Esto significa que, cuando excluye todo (' *
'), tiene que poner en list blanca las carpetas (' /**/
'), antes de poder hacer una list blanca de los files.
# Ignore everything * # Exceptions !.gitinore !init.vim !/**/ !bundle/vim-airline/autoload/airline/themes/kalisi.vim
El OP LastSecondsToLive realmente tomó un enfoque más simple:
bundle/vim-airline/autoload/airline/themes/kalisi.vim
un commit conbundle/vim-airline/autoload/airline/themes/kalisi.vim
luegobundle/vim-airline/autoload/airline/themes/kalisi.vim
mi.gitignore
a:* !.gitinore !init.vim
para ignorar todo, pero desdebundle/vim-airline/autoload/airline/themes/kalisi.vim
ya se ha rastreado, los cambios serán rastreados en el futuro.