Linux家目录Git仓库如何追踪嵌套子仓库内的自定义文件?
解决方法
方法一:使用Vim用户自定义目录(推荐)
Vim类插件(比如vim-snippets)会优先加载用户自定义目录下的配置文件,完全不需要修改第三方插件仓库内的文件:
- 在
~/.vim下创建专属自定义目录:mkdir -p ~/.vim/UltiSnips - 将修改后的
tex.snippets移至该目录:mv ~/.vim/plugged/vim-snippets/UltiSnips/tex.snippets ~/.vim/UltiSnips/ - 此后Vim会自动优先加载
~/.vim/UltiSnips/tex.snippets,原插件仓库的文件保持原样,你可以直接在主仓库中追踪~/.vim/UltiSnips/tex.snippets,完全不影响子仓库的.git目录。
方法二:强制追踪单个文件(仅应急使用)
如果一定要保留在插件目录内修改的文件,可以用Git的强制添加命令绕过子模块检测:
- 执行命令:
git add -f ~/.vim/plugged/vim-snippets/UltiSnips/tex.snippets - 之后可正常提交该文件,但需注意:后续插件仓库更新时,你的修改可能被覆盖,且Git会一直将该文件夹视为潜在子模块,操作易引发冲突。
方法三:用软链接分离追踪文件
- 在主仓库内创建专门存放自定义配置的目录(比如
~/.dotfiles/snippets),将修改后的tex.snippets放入其中,让主仓库追踪这个目录下的文件。 - 创建软链接指向插件目录的对应路径:
ln -sf ~/.dotfiles/snippets/tex.snippets ~/.vim/plugged/vim-snippets/UltiSnips/tex.snippets - 这样既保留了插件仓库的
.git目录,主仓库也能追踪你的自定义修改,同时插件仍能正常调用目标文件。
内容的提问来源于stack exchange,提问作者Tryer
相关产品推荐
相关产品推荐

