调试 Git 忽略

最后更新于 作者:

Debugging Git Ignore image

有时,您可能会创建一个意外被 git 忽略的文件。虽然这种情况并不常见,但找出哪个 `.gitignore` 文件负责忽略项目中的文件可能很棘手。一旦您了解了一个方便的 git 命令,它就变得超级容易了!

对于性急的人,找出 git 忽略文件的原因的 TLDR

git check-ignore -v path/to/ignored/file

关键是使用 `-v` 标志,以便能够看到导致 git 忽略文件的忽略文件的路径和行号。

示例 Git 忽略

让我们快速了解一下场景,然后介绍一个方便的 git 命令,您可以使用它来调试哪个 .gitignore 文件正在忽略文件夹/文件/等。

当罪魁祸首是项目中的 `.gitignore` 文件时,找出为什么忽略文件的原因比较简单,但是,如果您在 `~/.gitconfig` 中配置了全局排除文件,那么调试起来可能会有点棘手,并且可能会让您在一分钟内抓破头皮,想知道为什么您没有看到新的未跟踪文件。

以下是您在 `~/.gitconfig` 中配置全局忽略文件的示例。我喜欢为我想要在所有项目中忽略的文件管理此文件,但这些文件不一定是项目 `.gitignore` 文件的必需项。

[core]
excludesfile = ~/.gitignore
# ...

我最近在尝试在一个专门的片段存储库中创建一堆 Sublime 文本片段时遇到了这个问题。我的全局忽略文件有这一行

*.sublime-*

我使用此忽略规则来忽略所有存储库中的 `*.sublime-project` 文件,无意中也包含以 `*.sublime-snippet` 结尾的文件。

如果您想试一试,将上述规则添加到您的全局 .gitignore 文件中,然后尝试在一个 git 项目中创建一个 `*.sublime-snippet` 文件。您应该会看到创建的文件不像未跟踪文件那样显示。

touch test.sublime-snippet
git status
# On branch master
# nothing to commit, working tree clean

接下来,运行以下命令以使用 `-v` 标志确定为什么忽略文件。

git check-ignore -v test.sublime-snippet
/Users/paul/.gitignore:5:*.sublime-* test.sublime-snippet

如您所见,`check-ignore` 命令输出我的全局忽略文件和行号。

虽然 `check-ignore` 命令一旦您知道它就很容易理解,但学习它来快速排查不应该被忽略的忽略文件很有用。

Paul Redmond photo

Laravel 新闻的撰稿人。全栈 Web 开发人员和作者。

归档于
Cube

Laravel 新闻稿

加入 40,000 多位其他开发者,永不错过新的技巧、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,来自 No Compromises 播客的两位经验丰富的开发者,现在可以为您的 Laravel 项目聘用。⬧ 每月固定费率 7500 美元。⬧ 无需漫长的销售流程。⬧ 无需签订合同。⬧ 100% 满意保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

正在运行旧版本的 Laravel?立即进行自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

只需每月 2500 美元,即可为您的项目配备经验丰富的 Laravel 开发人员,拥有 4-6 年的经验。获得 160 小时的专业技能和 15 天免费试用。立即预约通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel 电子商务

Laravel 电子商务。一个开源包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar: Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 招聘网站

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,它包含运行现代 SaaS 所需的所有功能。支付、漂亮的结账、管理面板、用户仪表板、身份验证、预备组件、统计信息、博客、文档等等。

SaaSykit: Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel 的合作伙伴,降低成本,并为成功企业加速创新。

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解灵活、现代的 MongoDB 数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包向您的 Laravel 应用程序添加评论

阅读文章