有没有办法验证.gitignore文件,以便您快速找到不再存在的双路径或路径?通常情况下,当一个项目很小时,这并不是必需的,但是有很多分支和.gitignore文件的合并,这可以随便出现。
答案 0 :(得分:15)
不完全。
一个可能接近的命令是git check-ignore
选择一个您应该忽略的文件,并检查输出:
git check-ignore -v -- /path/to/ignored/file
您会看到适用的.gitignore
规则。
2016年3月更新:Git 2.8将添加一种调试.gitignore
文件及其规则的新方法。
在允许忽略 not 的子文件夹的情况下(即使忽略其父文件夹:请参阅example here),我发现this gem来自Thái Ngọc Duy (pclouds
) {3}}:
dir.c
:支持跟踪排除
man git
包括:
GIT_TRACE_EXCLUDE:
启用可帮助调试
.gitignore
处理的跟踪消息 See 'GIT_TRACE
'用于可用的跟踪输出选项。
将GIT_TRACE_EXCLUDE
设置为1,您会看到(git status
之后)stderr debug messages like:
exclude: from ...
exclude: xxx => n/a
exclude: xxx vs. yyy at line z: => www
答案 1 :(得分:1)
你可以做一个脚本来检查它。我在那里为你做了一个:
#!/bin/bash
set -o noglob
for file in `cat .gitignore | grep -v \#`
do
printf "$file"
find . -name "$file" | wc -l
done
它将显示规则,后跟当前目录中的匹配数并递归显示。例如:
*.log 31
*.gz 0
*~ 42
*.swp 0
*.aux 33
*.pdf 51
*.out 7
*.toc 6
*.nav 1
*.snm 1
.DS_Store 0
如果需要,可以通过管道输入0
将输出限制为包含egrep "\b0\b"
的行。
答案 2 :(得分:0)
为了在路径中也验证git的**模式,我不得不编写一个受上述脚本启发的单行代码:
class perpetualTimer():
def __init__(self, t, hFunction):
self.t = t
self.hFunction = hFunction
self.thread = Timer(self.t, self.handle_function)
def handle_function(self):
self.hFunction()
self.thread = Timer(self.t, self.handle_function)
self.thread.start()
def start(self):
self.thread.start()
不太漂亮,但是可以。