如何不用项目.gitignore,通过run内的.gitignore忽略软链接文件夹run?
如何忽略Git项目中的软链接目录(不修改根目录.gitignore或.git/info/exclude)
我的目录结构如下,其中run是用ln -s创建的软链接:
drwxrwxr-x . lrwxrwxrwx ├── run -> /home/xxx/.local/share/development/minecraft/vanilla_run drwxrwxr-x └── src
我希望将run添加到项目时自动忽略该文件夹,但不想使用项目根目录的.gitignore或.git/info/exclude。我尝试在run指向的目标目录中添加.gitignore,写入以下规则但未生效:
* */ ../run ../run/ ./ run
有没有办法通过run内部的.gitignore或其他方式实现需求?
解答
首先明确:Git不会读取软链接目标目录里的.gitignore来忽略软链接本身——Git把软链接视为单个文件,只会识别项目根目录或已被Git追踪的目录下的.gitignore规则。
可以通过以下两种方案实现需求:
配置软链接目标目录的.gitignore
如果vanilla_run本身是一个Git仓库,在它的根目录.gitignore中添加/,这样Git会停止追踪该目录的所有内容。当外部项目引用这个软链接时,由于目标目录未被Git追踪,整个软链接run会被自动忽略(前提是你还没手动将run添加到Git追踪列表)。使用Git本地自定义忽略文件
创建一个不被Git追踪的本地忽略文件,比如.gitignore.local,在其中添加run规则,然后通过Git配置让系统读取这个文件:git config core.excludesFile .gitignore.local这个文件不会被提交到版本库,也不会修改项目根目录的
.gitignore。
注意:如果已经将软链接
run添加到Git追踪列表,需要先执行以下命令移除追踪:git rm --cached run
内容的提问来源于stack exchange,提问作者PingIsFun
相关产品推荐
相关产品推荐

