我使用 Gentoo Linux,它的配置相当复杂。我的问题是使用 git 来控制我的配置文件的版本是否明智?
我家里有一些 git repos,我猜如果我把 /home/** 放在我的 .gitignore 中,它们不会引起问题。
澄清更新:
使用git对“/”根目录中的系统级配置文件进行版本控制是一种明智的方法吗?
Ant*_*gan 21
您的问题的简短答案是Yes。
我会毫不犹豫地推荐 Git(或任何其他版本控制软件)来跟踪配置文件。这样做后,我的工作效率更高(尤其是在配置新安装时),并且对我的配置文件更有信心。版本控制,我的记录是什么进行了更改,并提交信息提供了理由为什么进行了更改。如果更改有意外的副作用,我可以轻松查看日志/历史记录以查看导致影响的更改。
就个人而言,我对跟踪/根目录下的所有文件持谨慎态度。要忽略的路径列表可能会变得庞大而笨拙。我更喜欢将每个逻辑文件集保存在它们自己的存储库中。
我手动使用 Git 来跟踪我的个人配置/启动文件,例如 Vim 配置、Bash 函数、别名等——类似于如何使用 git 跟踪 $HOME 中列出的方法。我将每组文件保存在自己的存储库中,并使用指向主目录的符号链接。
对于系统配置文件,我使用 Git 和Etckeeper来跟踪我/etc目录中的文件。
需要警惕的一个问题是被跟踪的文件是否包含硬链接。当 Git 用于检出文件或以其他方式修改工作树时,它会取消链接文件,然后重新创建它们。有关更完整的解释,请参阅Git、Dotfiles 和 Hardlinks。
Etckeeper 可用于保留对 /etc 所做更改的完整历史记录。它跟踪的是版本控制系统通常不支持文件元数据,但这是重要的/etc,如权限/etc/shadow。
它连接到包管理器,例如 apt 和 yum 并且(在其默认配置中),在安装前和安装后运行,以便/etc跟踪所有更改。
如果安装或删除一个包,/etc 中所有未提交的更改将在包操作之前提交,因此有两次提交:
我在基于 Debian 和 Red Hat 的发行版中使用过它,我知道它支持 Arch 包管理。我不能说它会为 Gentoo 系统增加多少自动化,但有一个软件包可用。
它还支持将配置文件推送到远程存储库 (当然应该是私有的)。
安装软件包后,您可能需要对其进行配置 ( /etc/etckeeper/etckeeper.conf),例如,在 Ubuntu 系统上,默认版本控制系统从 Git 更改为 Bazaar。您可能还想禁用每日自动提交。
更改可以由每日 cron 作业自动提交。这可能很烦人,因为存储库可能会因多个自动提交消息而变得混乱。
我取消注释适当的行/etc/etckeeper/etckeeper.conf:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Run Code Online (Sandbox Code Playgroud)
编辑/etc/.gitignore以指定不应跟踪的任何文件。
配置完成后,运行以下命令:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Run Code Online (Sandbox Code Playgroud)
如果您的当前目录是etc,您可以运行常规git命令,例如,
sudo git status
sudo git log
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14024 次 |
| 最近记录: |