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/
中生成测试。
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/
中生成测试。