跳至内容
GitTree

课程 15 · 日常工作

安全地忽略文件并清理未跟踪的工作

提交课程忽略策略,然后预览并仅删除一次性未跟踪的暂存文件。将忽略的构建输出、跟踪的工作和恢复范围分开。

进度已保存在此浏览器中。

播放时会加载来自 YouTube 的视频(隐私增强模式)。

英文旁白 · English and Arabic 字幕

打开视频页面在 YouTube 上观看

你将学到什么

  • 解释忽略规则与跟踪文件。
  • 预览小范围的清理。
  • 检查应用程序的确切删除列表。
  • 区分本机删除和应用程序快照。

开始之前

从第 14 课结束的地方开始:main/H7 clean,最小的 .gitignore 仅包含 dist/,标签 v0.1.0 固定在 H7。该视频添加了生成的 dist/index.html,该规则已将其隐藏。

该视频是在 Ubuntu 24.04 上使用 Git 2.52.0 和 GitTree 2.0 录制的:忽略文件、提交、暂存文件和清理均在应用程序中完成;之前的状态、预览和检查在终端中运行,并为预览提供单独的副本。 macOS 或 Windows 上没有运行任何内容,并且 Ubuntu 是唯一记录的 Linux 系统。 GitTree 的源 Git 版本是 2.39.0。

GitTree 要求您登录;免费计划涵盖了这里的每一步。不需要提供商帐户、专业版/试用版、API 凭证或互联网服务。本地裸源不是 GitLab 或 CI。所有身份均使用 example.com;切勿在源代码检查中运行本课程。

通过 GitTree 或本地路径以相同的输入进行突变,而不是连续进行。只读验证可以遵循其中任何一个。任何被描述为终端工作的准备工作都被标记为本机准备,而不是发明的应用程序功能。

概念和状态效应

忽略规则通常会隐藏未跟踪的候选人;它们不会停止跟踪已索引的路径、清除历史记录或保护秘密。像任何其他文件一样提交共享策略。

清理操作会删除其范围内未跟踪的路径。原生 git clean 没有内置恢复快照;除非单独保存,否则删除未跟踪的文件无法从普通提交历史记录中恢复。

GitTree 的清理未跟踪文件...构建精确列表并在删除之前保护列出的字节。选项“包括忽略的文件”和“仅忽略的文件”更改范围并且是互斥的。源保护并不能证明记录了特定的撤消操作。

保存/提交 .gitignore 更改索引/树/主。清理暂存仅删除未跟踪的磁盘文件;它不会提交或更新远程引用。忽略的 dist 保留默认的清理选项。

准备准确的项目状态

仅使用原始课程存储库。首先保存完整的忽略、暂存和提交。然后创建完整的SCRATCH;它故意位于忽略的scratch/之外,因此默认的干净列表可以显示它。如果练习本机删除,请在演示之外保留单独的副本。

完整的文件输入

仅在下面指定的阶段保存。这些是完整的 UTF-8/LF 正文,最后有换行符;永远不要粘贴 Markdown 栅栏。未更改的可运行文件继承命名输入。单独变体中的版本不得覆盖原始版本。

.gitignore — 忽略

文件摘录 · gitignore
node_modules/
dist/
coverage/
reports/
.course-cache/
*.log
scratch/

course-scratch.txt — SCRATCH

输出
Disposable course scratch. No useful work.

在GitTree

调色板:Command+Shift+P(在 Ubuntu 上为 Ctrl+Shift+P);输入确切命名的命令并选择它。命名引用操作使用该行的上下文菜单,而不是无参数的调色板快捷方式。

  1. 调色板 Edit .gitignore… 打开“.gitignore in gittree-features”。单击 Rules, one per line,选择全部,然后输入(或粘贴)完整的 IGNORE 正文; Save。这会写入文件,而不是提交。 (该对话框还具有 Add Template 和 Why is this ignored? 检查路径。)
  2. 显示工作变化;仅审查 .gitignore,阶段文件;摘要杂务:忽略生成的课程文件;对 1 个文件提交一次更改。
  3. 新建文件… → course-scratch.txt → 创建;保存精确的 SCRATCH,无需分段。确认它未被追踪。
  4. 运行下面的本机路径范围的试运行。如果列出任何不同的路径,请在删除之前停止。
  5. 调色板 Clean Untracked Files… 打开“清理 gittree-features 中未跟踪的文件?”。它读取“1 个文件,0 个文件夹(0 个被忽略),43 B”并列出 course-scratch.txt;在列表下方,它表示在删除任何内容之前,每个列出的文件的恢复快照都会保存在 refs/ogt/trash 下,并且“撤消”会将文件放回没有新内容取代的位置。
  6. 关闭“包括未跟踪的文件夹”、“包括忽略的文件”和“仅忽略的文件”。预期候选者仅为 course-scratch.txt;如果出现有用的工作则取消。
  7. 选择删除 1 项一次并等待实际结果。应用程序首先保护字节;在要求撤消之前捕获该证据。
  8. 验证干净状态并忽略 dist/index.html。不要删除快照或启用忽略清理来美化视图。

对于每个普通提交:Summary 是规定的主题;描述为空;修改先前的提交、跳过挂钩、添加签署者、不同的作者、提交后推送以及允许空提交;没有共同作者。仅暂存指定的文件,然后将更改提交到 N 个文件一次(文件为一个),或者使用 Command+Enter 作为替代方案。等待真正的结果。明确修改的课程仅更改所述选项。

在航站楼

先保存忽略;本机提交替代方案:

Command · bash
git add -- .gitignore
git commit --quiet -m "chore: ignore generated course files"
git check-ignore dist/index.html

观察到的输出:

输出
dist/index.html

仅在提交后创建精确的 SCRATCH,如果需要,将其保留在外部,然后:

Command · bash
git clean -n -- course-scratch.txt

观察到:

输出
Would remove course-scratch.txt

仅在确认此一次性路径后,本机替代方案(不是在应用程序成功后):

Command · bash
git clean -f -- course-scratch.txt
git status --short

观察到的去除:

输出
Removing course-scratch.txt

状态沉默。此本机 -f 仅限于指定的一次性文件,而不是 -fdx 或广泛的清理。 Native Git 没有制作应用程序快照。更改输入的非变异预览,因为它们在单独的副本中运行: git clean -n -X 不打印任何内容,因为没有 -d Git 不会进入被忽略的 dist/ 文件夹;出于同样的原因,git clean -n -x 仅列出了 course-scratch.txt; git clean -n -x -- course-scratch.txt dist/index.html,命名两个路径,列出两个路径。命名路径可以扩大范围。切勿用任何扩展的破坏性形式代替范围内的删除。

结果

Where you end: Main 有杂务:忽略生成的课程文件提交 I8 并完全忽略;显式清理、工作/索引清理、忽略 dist、标记/服务器引用未更改后,course-scratch.txt 不存在。

常见错误

  • 假设被忽略的跟踪文件留下历史记录。
  • 使用 -x 或 app 忽略选项而不进行范围审查。
  • 期望本机清理有应用程序撤消。

如果出现问题

如果预览不同则取消。本机删除需要单独的保留文件来恢复;应用程序撤消取决于真实快照/日志和当前路径,而不是涵盖任何删除的承诺。

检查你的理解情况

回答每个问题,然后阅读原因。标记为“必填”的问题将有助于完成本课程。

  1. 第 1 题,共 6 题

    是否忽略删除跟踪历史记录?

    选择一个答案。

  2. 第 2 题,共 6 题

    范围清洁后还剩下什么?

    选择每个适用的答案。

  3. 第 3 题,共 6 题
    必填

    清理是否会产生新的提交?

    选择一个答案。

  4. 第 4 题,共 6 题
    必填

    更改输入以包含忽略的文件:范围?

    选择一个答案。

  5. 第 5 题,共 6 题

    本机干净运行。应用撤消有保证吗?

    选择一个答案。

  6. 第 6 题,共 6 题
    必填

    什么证明了预期的清洁?

    选择每个适用的答案。

0 个(共 6 个)正确

正确回答所需的问题以完成课程。

在此浏览器中检查。

练习

验证 IGNORE 已提交、scratch 不存在且 dist 被忽略。仅在单独的预览中,使用 -X 与 -x 预测出现哪些被忽略的候选者,而不删除它们。

您自己的确认:该网站无法看到您的计算机。

要完成本课程,请正确回答所需的问题并确认实践练习。

回顾

  • 忽略并不是取消跟踪。
  • 清洁范围是明确的。
  • 恢复取决于保留的字节。

术语表介绍

忽略 — ཁགག་;清洁 — 清洁;未追踪 — ¡恢复快照 — 恢复快照。

视频文字记录

视频的旁白,逐条提示。

显示成绩单
  1. 从确切的检查点开始。
  2. 命名分支、索引 和工作版本。
  3. 仅准备单独的课程副本。
  4. 保存确切的共享忽略策略。
  5. 仅提交忽略文件。
  6. 保留暂存文件 故意不追踪。
  7. 首先预览确切的命名路径。
  8. 阅读每一个移除候选者。
  9. 不要扩大清洁选项。
  10. 仅取出一次性文件夹。
  11. 验证保留的内容 以及消失的东西。
  12. 是否忽略删除跟踪历史记录?
  13. 规则隐藏了未跟踪的候选人; 他们不会改写历史。
  14. 范围清洁后还剩下什么?
  15. 仅指定未跟踪的暂存 通过这些选项被删除。
  16. 清理是否会产生新的提交?
  17. 该操作删除磁盘 索引之外的字节。
  18. 更改输入以包含 忽略的文件:范围?
  19. 扩大的选择改变了候选人; 行动前再次预览。
  20. 本机干净运行。应用撤消有保证吗?
  21. 本机清理不会创建 GitTree 日志或未跟踪内容备份。
  22. 什么证明了预期的清洁?
  23. 检查已移除和保留的情况 状态与命名查询。
  24. 验证实际结果, 不仅仅是一条消息。
  25. 在行动之前预测改变的输入。
  26. 在恢复之前保留有用的工作。
  27. 在继续之前证明检查点。
  28. 保留验证结果 以便下一步。