由于 Git 不支持开箱即用,您可以使用 Git 钩子自己实现一个,例如:
在任何情况下,您都需要管理您的忽略并包含在自定义文件中,而不是其.gitignore
本身,因为将生成此文件。因此,假设您.gitignoreincludes
在一个分支中有一个文件,而在其他分支中有自定义包含文件。
因此,您可以像这样安装“合并后”挂钩,例如:
#!/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
这个钩子将在任何成功的合并时启动,将寻找一个.gitignoreincludes
文件,如果它存在,将生成一个.gitignore
文件。.gitignore
将包含.gitignoreincludes
引用为 . 的所有文件中的所有条目和所有条目include FILE_NAME
。忽略.gitignore
自身允许在进行合并时多次安全地重新生成它。
这可以通过允许include
包含文件中的指令来进一步改进,或者也post-checkout
可以实现一个钩子来在分支等之间切换时重新生成 .gitignore 等等。