*core.excludesfile中的war导致git add忽略*.p12文件
这太令人困惑了。使用shell命令更容易显示 请注意,我的*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文件现在没有被忽
~/.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
指定路径,都会发生这种情况,而与忽略文件的实际位置无关。为了更好地格式化,我已经用交互更新了我的问题