我正在尝试使用git管理我neovim
的init.vim
。我想忽略除与init.vim
相同的文件夹.gitignore
和kalisi.vim
目录中的一个文件夹之外的所有内容
/bundle/vim-airline/autoload/airline/themes/
这是我目前的情况.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
我对此的想法:
忽略一切: *
除此之外.gitignore
:!.gitgnore
并init.vim
在同一目录中:!init.vim
也不要忽略文件夹bundle
:!bundle
但是其中的所有内容: bundle/*
除了文件夹vim-airline
:!vim-airline
我想你应该已经明白了...
但是,如果我git status
现在执行,只会得到bundle/
未跟踪的文件。我不应该得到kalisi.vim
还是bundle/vim-airline/autoload/airline/themes/kalisi.vim
?
我希望有一种更优雅的坦率方式。我还听说过.gitignore
在目录中放置多个,但是子目录都是具有它自己的项目,.gitignore
这将产生大量工作,而只是不忽略权限.gitignore
。
我希望有人知道该怎么做,目前看来好像在bundle/
跟踪目录,但不是我想要的内容...
正如我在“如何将不带点的文件(所有无扩展名的文件)添加到gitignore文件? ”中提到的那样,要记住一个规则.gitignore
:
如果排除该文件的父目录,则无法重新包含该文件。(†
)
(†
:除非满足git 2.7+中的某些条件)
这意味着,当您排除所有内容(' *
')时,必须/**/
先将文件夹(' ')列入白名单,然后才能将文件列入白名单。
# Ignore everything
*
# Exceptions
!.gitinore
!init.vim
!/**/
!bundle/vim-airline/autoload/airline/themes/kalisi.vim
该OP LastSecondsToLive竟拿出一个简单的方法:
我创建了一个提交,
bundle/vim-airline/autoload/airline/themes/kalisi.vim
然后又切换.gitignore
回:* !.gitinore !init.vim
忽略所有内容,但是由于bundle/vim-airline/autoload/airline/themes/kalisi.vim
已经被跟踪,因此将来会跟踪更改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句