gitignore加载其他gitignore
可能吗?gitignore加载其他gitignore,git,gitignore,Git,Gitignore,可能吗?git更新索引——假设unchanged不是解决方案,则必须跟踪被忽略的文件。也可以创建子模块 例如 第3类(1 | 2 | 3…) 猫,吉特 basic-stuff.extension .customgitignore1 .customgitignore2 .customgitignore3 等 为感兴趣的人提供问题描述 我正在创建配置的私有回购。一个分支=一个配置。附加分支作为工作区。我根据需要将其他分支配置与工作区合并。分支配置每个都有自己的.gitignore,只有在合并后才应
git更新索引——假设unchanged
不是解决方案,则必须跟踪被忽略的文件。也可以创建子模块
例如
第3类(1 | 2 | 3…)
猫,吉特
basic-stuff.extension
.customgitignore1
.customgitignore2
.customgitignore3
等
为感兴趣的人提供问题描述
我正在创建配置的私有回购。一个分支=一个配置。附加分支作为工作区。我根据需要将其他分支配置与工作区合并。分支配置每个都有自己的.gitignore,只有在合并后才应应用。我试图忽略gitignore文件中的冲突
我试图忽略gitignore文件中的冲突
然后不要对最终的.gitignore文件本身进行版本设置:按需生成它
将.gitignore文件分开,但添加(一个smudge
脚本),它将:
- 每个.gitignore.xxx文件的
- 将其内容连接到实际的.gitignore(该文件未添加到git,并且仍然是一个私有文件)
由于Git不支持这种开箱即用的方式,您可以自己用Git钩子实现一个,例如:
#!/bin/bash
gitignoreWithIncludes=".gitignoreincludes"
if [[ -f $gitignoreWithIncludes ]]; then
echo ".gitignore" > .gitignore
while read -r line
do
if [[ $line == include* ]]; then
includeName=${line:8}
while read -r includeLine
do
echo $includeLine >> .gitignore
done < $includeName
else
echo $line >> .gitignore
fi
done < $gitignoreWithIncludes
fi
在任何情况下,都需要管理忽略并将其包含在自定义文件中,而不是.gitignore
本身,因为将生成此文件。比如说,在一个分支中有一个.gitignoreincludes
文件,在其他分支中有一个自定义includes文件
因此,您可以像这样安装“合并后”挂钩,例如:
#!/bin/bash
gitignoreWithIncludes=".gitignoreincludes"
if [[ -f $gitignoreWithIncludes ]]; then
echo ".gitignore" > .gitignore
while read -r line
do
if [[ $line == include* ]]; then
includeName=${line:8}
while read -r includeLine
do
echo $includeLine >> .gitignore
done < $includeName
else
echo $line >> .gitignore
fi
done < $gitignoreWithIncludes
fi
#/bin/bash
gitignoreWithIncludes=“.gitignoreincludes”
如果[-f$gitignoreWithIncludes]];然后
echo“.gitignore”>.gitignore
而read-r行
做
如果[[$line==include*];然后
includeName=${line:8}
而read-r includeLine
做
echo$includeLine>>.gitignore
完成<$includeName
其他的
echo$line>>.gitignore
fi
已完成<$gitignoreWithIncludes
fi
此钩子将在任何成功合并时启动,将查找.gitignoreincludes
文件,如果存在,将生成.gitignore
文件.gitignore
将包含中的所有条目。gitignoreincludes
以及引用为的所有文件中的所有条目包括文件名。拥有.gitignore
忽略自身允许在执行合并时多次安全地重新生成它
这可以通过允许include
指令也包含在包含的文件中来进一步改进,或者还可以实现post checkout
钩子来在分支之间切换时重新生成.gitignore等
#!/bin/bash
gitignoreWithIncludes=".gitignoreincludes"
if [[ -f $gitignoreWithIncludes ]]; then
echo ".gitignore" > .gitignore
while read -r line
do
if [[ $line == include* ]]; then
includeName=${line:8}
while read -r includeLine
do
echo $includeLine >> .gitignore
done < $includeName
else
echo $line >> .gitignore
fi
done < $gitignoreWithIncludes
fi