使用 Git 跟踪配置文件

GitBeginner
立即练习

介绍

Linux 管理员经常需要编辑配置文件。Git 的强大之处在于它能记录文件的变更内容、变更时间以及变更原因。即使在不需要完整基础设施工作流的情况下,使用小型 Git 仓库也能帮助你在编辑前后跟踪本地配置的变更。

在本实验中,你将跟踪 /home/labex/project 目录下名为 app.conf 的小型配置文件。你将完成初始化 Git 仓库、配置本地作者身份、创建初始提交、编辑文件、查看差异以及创建第二次提交等操作。本实验将利用 Git 历史记录作为配置变更的持久化记录。

检查配置文件

在本步骤中,你将检查 Git 即将跟踪的文件。在创建仓库之前,请确保你了解哪些文件是关键的,以及它们当前的内容是什么。

进入 LabEx 项目目录。

cd /home/labex/project

列出配置文件。-l 选项可以显示文件的大小、所有者和权限等元数据。

ls -l app.conf

读取文件内容。该配置使用了简单的 key=value 格式,这是 Linux 应用程序配置中常见的形式。

cat app.conf

你应该会看到 log_level=info。稍后你将只修改这一项设置,以便让 Git 的差异对比(diff)保持聚焦。

初始化本地 Git 仓库

在本步骤中,你将把 /home/labex/project 变成一个 Git 仓库。Git 仓库会将历史记录存储在一个隐藏的 .git 目录中。在创建提交之前,Git 还需要知道作者的姓名和邮箱。在实际工作中,这些信息通常是全局配置的,但在实验环境中,仅针对当前仓库配置身份会更安全。

初始化仓库。-b main 选项用于将初始分支显式命名为 main,这可以避免 Git 打印关于默认分支名称的警告。

git init -b main

设置本地作者身份。--local 作用域确保这些值仅存储在该仓库中。第三条命令禁用了本实验仓库中 Git 的彩色输出,这样在浏览器终端中查看简短的状态、差异和日志输出会更容易。

git config --local user.name "LabEx Learner"
git config --local user.email "learner@example.com"
git config --local color.ui false

运行 git status --short。该文件应显示为未跟踪(untracked),因为 Git 虽然看到了它,但尚未对其进行跟踪。在简短的状态输出中,?? 表示未跟踪的文件。

git status --short

提交初始配置

在本步骤中,你将创建第一个提交。此时需要理解 Git 的两个主要区域:工作区(working tree)和暂存区(staging area)。工作区是你看到并编辑的文件;暂存区则是准备放入下一次提交的变更集合。

仅暂存配置文件。在学习阶段应避免使用 git add .,因为它可能会意外地暂存无关文件。

git add app.conf

再次检查简短状态。A 表示该文件已作为新文件被暂存。

git status --short

创建第一个提交,并附带清晰的提交信息。

git commit -m "Track initial app configuration"

检查最近的历史记录。--oneline 选项使输出保持紧凑。--no-pager 选项将日志直接打印在终端中,而不是打开交互式查看器。

git --no-pager log --oneline

查看并提交配置变更

在本步骤中,你将编辑配置文件,并在提交前检查变更。这是配置跟踪中核心的 Git 使用习惯:进行有针对性的修改,查看差异,然后提交并附带解释意图的说明。

将 log_level 从 info 修改为 debug。sed -i 命令会直接在文件中进行修改。模式以 ^ 开头并以 $ 结尾,确保只修改完整的 log_level=info 这一行。

sed -i 's/^log_level=info$/log_level=debug/' app.conf

查看已提交版本与工作区之间的差异。--no-pager 确保差异直接显示在终端中。

git --no-pager diff -- app.conf

差异输出应显示删除了一行并增加了一行:

-log_level=info
+log_level=debug

暂存并提交此次修改。

git add app.conf
git commit -m "Enable debug logging"

再次查看紧凑的历史记录。现在你应该能看到两个提交了。

git --no-pager log --oneline

最后,检查 app.conf 的工作区是否处于干净状态。

git status --short app.conf

总结

你练习了用于 Linux 配置跟踪的基础 Git 操作。你完成了检查配置文件、初始化仓库、设置本地作者身份、检查状态、暂存特定文件、创建初始提交、查看重点差异以及提交配置变更等流程。这些习惯有助于管理员理解并恢复配置变更,而不是盲目地编辑文件。