我想使用PHP来读取.gitignore配置忽略的所有文件和路径.就像git一样.
可以重复读取目录并使用正则表达式对每个文件进行过滤.但如果路径文件太多,它就无效了.
读取.gitignore忽略的目标文件和路径的任何好的和最有效的方法?
我有两个CSS文件。一种是忽略GIT,另一种则没有。
我想确认哪个被忽略,哪个未被忽略。
我可以使用以下命令来检查文件是否被忽略。
git status-忽略
如何检查特定文件?
.gitignore我的存储库中的文件中有一些条目git,但某些条目仍然显示为未跟踪的文件。
我的文件中的重要部分.gitignore:
# IDE settings
.idea/
# Environments
win_venv/
# Byte-compiled / optimized / DLL files
__pycache__/
# Distribution / packaging
*.egg-info/
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时git status,会出现以下情况:
Untracked files:
(use "git add <file>..." to include in what will be committed)
.idea/
mypackage.egg-info/
mypackage/__pycache__/
mypackage/schema/__pycache__/
mypackage/schema/models/__pycache__/
mypackage/tests/__pycache__/
win_venv/
Run Code Online (Sandbox Code Playgroud)
有人知道为什么会发生这种情况或者我的.gitignore文件中有什么错误吗?
这个问题与建议的答案不同,因为所示的文件未被跟踪。venv如果我创建一个新的虚拟环境,并在文件中包含适当的条目,也会发生此问题.gitignore。
所以这有点奇怪。我在主目录中的文件夹中有文件,而 Git 看不到它们。所以当我git status没有看到我亲爱的更新文件时。
我没有.gitignore,我已经试过混帐config core.excludesfile,但它呈现无输出,我检查REPO/.git/config,并REPO/.git/info/exclude在那里,什么都没有,git add -f是不是英雄,git check-ignore不是一个Git命令(可能是我的Git版本)。
我在本地克隆了我的 repo,但仍然适用于新 repo 的相同问题。我检查了这些答案:未跟踪的文件未显示在 git status 中,Git 忽略不在 .gitignore 中的文件,Git 未检测到文件且不在 .gitignore 中,在 git 中显示被忽略的文件但未提供解决方案有为我工作。
但是如果我重命名文件夹然后 git status 输出它。那么有人知道我应该去哪里找吗?我什至没有问为什么有这么多方法可以忽略文件,因为我知道我最终会得到比答案更多的问题,但是该死的 Git 你应该让我的生活更轻松!
注意:
这不是关于修复,就像git rm -r --cached . && git add .我实际上只想列出文件一样.
为什么:
有时当我编辑我的.gitignore并忘记上面的命令时,我最终得到了仍在存储库中的文件,但应该被忽略.
什么:
我想要完成的是编写一个shell脚本,它能够列出我的文件系统上should已被忽略但仍然存在的所有文件.
结果:
最后,我想将它实现到一个持续集成服务器,即检查规则.gitignore是否与存储库中的文件匹配.
有没有办法.gitignore用手解析?