Git 忽略区分大小写的文件夹名称

Git Ignore Case-Sensitive Folder Names

committing filename changes on case-insensitive OS's 上有很多 questions/answers,但我的问题是 git- 忽略区分大小写的文件夹(在 linux 和 windows 上) .

示例:关键的第 3 方软件工具生成文件夹 Test/,其中包含用于测试的构建工件。 我们系统中测试文件的标准位置是 test/ 个文件夹。 git忽略了 **/Test/(我们不想 see/commit),但是 test/ 文件夹没有显示(我们想要 see/commit).

在最新的 windows git-bash、setting/toggling core.ignorecase = false 上测试此行为似乎没有改变行为。

编辑:从 VonC 的有用命令检查每个文件git忽略状态,一个演示

git init
mkdir -p d1/Test d2/test
touch d1/Test/hidden d2/test/visible
git config -f .gitconfig --add core.ignorecase false
echo "**/Test/" > .gitignore

git status

Untracked files:
.gitconfig
.gitignore
# Missing d2/test/visible

git -c core.ignorecase=false check-ignore -v -- d1/Test/hidden

.gitignore:1:**/Test/    d1/Test/hidden

git -c core.ignorecase=false check-ignore -v -- d2/test/visible

# Nothing, which is correct

第二次编辑:

这导致了(不太)明显的问题:forgetting to add .gitconfig to local config:(当然,如果它实际上没有改变,它就不会表现得像改变了......)

git config --local include.path ../.gitconfig

setting/toggling core.ignorecase = false doesn't seem to change the behavior.

虽然应该。

使用该文件夹中的文件对其进行测试:

git -c core.ignorecase=false check-ignore -v  --  Test/a/File

另一种方法是完全回避这个问题并确保:

  • 例如,标准位置在 tests/ 而不是 test/
  • 或关键软件在 Tests/ 而不是 Test/ 中生成测试。