*core.excludesfile中的war导致git add忽略*.p12文件

*core.excludesfile中的war导致git add忽略*.p12文件,git,Git,这太令人困惑了。使用shell命令更容易显示 请注意,我的~/.gitconfig在[core]部分指定了排除文件=/home/I063510/.gitignore 检查.p12被忽略的原因,将管道连接到sed以屏蔽我的用户id $> git check-ignore -v check.p12 | sed -n 's,/home/[^/]*,~,p' ~/.gitignore:11:*.war check.p12 用pattern^*.war注释掉该行,并验证.p12文件现在没有被忽

这太令人困惑了。使用shell命令更容易显示

请注意,我的
~/.gitconfig
[core]
部分指定了
排除文件=/home/I063510/.gitignore

检查.p12被忽略的原因,将管道连接到sed以屏蔽我的用户id

$> git check-ignore -v check.p12 | sed -n 's,/home/[^/]*,~,p'
~/.gitignore:11:*.war   check.p12
用pattern
^*.war
注释掉该行,并验证.p12文件现在没有被忽略

$> sed -i.orig 's,^*.war,#&,' ~/.gitignore
$> git check-ignore -v check.p12 | sed -n 's,/home/[^/]*,~,p'
$> 
还原原始文件并验证。p12被忽略

$> mv -f ~/.gitignore.orig ~/.gitignore
$> git check-ignore -v check.p12 | sed -n 's,/home/[^/]*,~,p'
~/.gitignore:11:*.war   check.p12
git版本:

$> git --version
git version 2.17.0
更新

我根据VonC的答案尝试了portablegit,并看到了相同的结果:

# git check-ignore -v check.p12

# git config core.excludesfile c:/temp/.gitignore

# git check-ignore -v check.p12
c:/temp/.gitignore:1:*.war      check.p12

# git --version
git version 2.20.1.windows.1
更新2 忘了提一下,这种情况只发生在
~core.excludesfile~
中的模式,而不是
~core.workdir~/.gitignore

我正在使用cygwin git

尝试使用常规(),在
C:\Git
中解压缩,在
CMD
会话中使用a:

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
然后,如果您想在bash会话中工作,可以键入
bash


然后看看问题是否依然存在。

这肯定很奇怪。您可以下载Git源代码,为您的计算机构建它,然后尝试调试glob匹配代码。@torek我正在使用cygwin Git。我没有他们的gcc编译器。我想我可以下载它,但我怀疑cygwin的构建可能需要特别注意。非常奇怪。无法在Centos 7.4.1708上使用git版本2.13.2.556.g5116f79进行复制。您的“更新2”是否与您的问题标题相矛盾?@VonC确实如此。当我第一次发布这篇文章时,我忘记了
~/.gitignore
不是一个固定路径,而是在
core.excludesfile
中指定的任何文件,无论是使用
git config
还是在
~/.gitconfig
中,我都看到了相同的行为。无论我是在
%WINHOME%\.gitconfig
中指定.gitignore的路径,还是使用
git config core.excludesfile
指定路径,都会发生这种情况,而与忽略文件的实际位置无关。为了更好地格式化,我已经用交互更新了我的问题