使用 Git 管理您的点文件

2020 年 3 月 27 日 | Sébastien 'sogal' Poher | 无许可

Manage your dotfiles with Git

点文件是什么???

通常被称为点文件的是所有包含你的软件配置的小型纯文本文件。大多数时候,它们位于你的 $HOME 目录中,但由于它们以点为前缀,因此它们被隐藏,因此得名。对于某些应用程序,你也可以在 $HOME/.config 目录中找到它们。

在管理它们(即跟踪更改、在不同的工作站之间移动它们、备份它们等)时,有不同的解决方案

  • 老式的 USB 存储器
  • 使用 rsync 同步它们
  • 将它们同步到“云”中
  • 将它们复制到中央文件夹并将其符号链接到应该找到它们的位置

在本文中,我们将重点介绍如何使用 Git 以高效和简单的方式管理它们。

Git 拯救你

在此示例中,我们将使用 $HOME/Dotfiles 作为 Git 仓库,但请随时根据你的需要进行更改。

首先,我们将初始化这个仓库

git init --bare $HOME/Dotfiles

然后,由于我们将使用的所有 git 命令都将引用此仓库,因此建议创建一个别名,例如

alias dotfiles='/usr/bin/git --git-dir=$HOME/Dotfiles --work-tree=$HOME'

你可以将此行添加到你的 $SHELL 配置文件(如果你使用 Bash 则为 $HOME/.bashrc,如果你使用 zsh 则为 $HOME/.zshrc)。

接下来,我们将配置 Git,使其不会显示所有未跟踪的文件。这是必需的,因为我们使用整个 $HOME 作为工作树。

dotfiles config --local status.showUntrackedFiles no

此时,你应该能够检查此仓库的状态

dotfiles status

然后你可以添加你的配置文件并按你希望的方式提交。例如,让我们添加我们的 .bashrc

dotfiles add .bashrc
dotfiles commit -m "Added .bashrc"

现在只需添加一个远程仓库(你自己的自托管 Git 或公共仓库),并将你的更改推送到它

dotfiles remote add origin git@yourgit.example.com/dotfiles.git
dotfiles push

设置一台新机器

现在你已经设置好了一切,让我们使用仓库中的点文件配置一台新的系统。

首先,本地克隆你的在线仓库

git clone --bare git@yourgit.example.com/dotfiles.git $HOME/Dotfiles

再次,你必须定义与之前相同的别名

alias dotfiles='/usr/bin/git --git-dir=$HOME/Dotfiles --work-tree=$HOME'

请记住将其放在你的 $SHELL 配置文件中。现在,只需将你刚刚克隆的仓库中的更改应用到你的系统

dotfiles checkout

如果某些文件已经存在,你将收到一个错误。这可能会发生在使用 openSUSE 安装和用户帐户创建期间默认创建的文件,例如 $HOME/.bashrc 文件,不用担心,只需重命名或删除它们即可。

现在,每次你更改由 Git 跟踪的配置文件时,请记住提交并推送你的更改。

来源

以下文章被用作本文的来源。非常感谢他们的作者

分享此帖子