通过在 GitLab 或 GitHub 上分享你的点文件,可以在整个系统上备份或同步你的自定义配置。
通过隐藏文件集(称为点文件)来定制操作系统是个非常棒的想法。在这篇 Shell 点文件可以为你做点什么中,H. Waldo Grunenwald 详细介绍了为什么以及如何设置点文件的细节。现在让我们深入探讨分享它们的原因和方式。
什么是点文件?
“点文件”是指我们计算机中四处漂泊的配置文件。这些文件通常在文件名的开头以 . 开头,例如 .gitconfig ,并且操作系统通常在默认情况下将其隐藏。例如,当我在 MacOS 上使用 ls -a 时,它才会显示所有可爱的点文件,否则就不会显示这些点文件。
dotfiles on master ➜ ls README.md Rakefile bin misc profiles zsh-custom -
dotfiles on master ➜ ls -a . .gitignore .oh-my-zsh README.md zsh-custom .. .gitmodules .tmux Rakefile .gemrc .global_ignore .vimrc bin .git .gvimrc .zlogin misc .gitconfig .maid .zshrc profiles
如果看一下用于 Git 配置的 .gitconfig ,我能看到大量的自定义配置。我设置了帐户信息、终端颜色首选项和大量别名,这些别名可以使我的命令行界面看起来就像我的一样。这是 [alias] 块的摘录:
87 # Show the diff between the latest commit and the current state 88 d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat" 89 90 # `git di $number` shows the diff between the state `$number` revisions ago and the current state 91 di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d" 92 93 # Pull in remote changes for the current repository and all its submodules 94 p = !"git pull; git submodule foreach git pull origin master" 95 96 # Checkout a pull request from origin (of a github repository) 97 pr = !"pr() { git fetch origin pull/$1/head:pr-$1; git checkout pr-$1; }; pr"
由于我的 .gitconfig 有 200 多行的自定义设置,我无意于在我使用的每一台新计算机或系统上重写它,其他人肯定也不想这样。这是分享点文件变得越来越流行的原因之一,尤其是随着社交编码网站 GitHub 的兴起。正式提倡分享点文件的文章是 Zach Holman 在 2008 年发表的《点文件意味着被复刻》。其前提到今天依然如此:我想与我自己、与点文件新手,以及那些分享了他们的自定义配置从而教会了我很多知识的人分享它们。
分享点文件
我们中的许多人拥有多个系统,或者知道硬盘变化无常,因此我们希望备份我们精心策划的自定义设置。那么我们如何在环境之间同步这些精彩的文件?
我最喜欢的答案是分布式版本控制,最好是可以为我处理繁重任务的服务。我经常使用 GitHub,随着我对 GitLab 的使用经验越来越丰富,我肯定会一如既往地继续喜欢它。任何一个这样的服务都是共享你的信息的理想场所。要自己设置的话可以这样做:
- 登录到你首选的基于 Git 的服务。
- 创建一个名为
dotfiles 的存储库。(将其设置为公开!分享即关爱。)
- 将其克隆到你的本地环境。(你可能需要设置 Git 配置命令来克隆存储库。GitHub 和 GitLab 都会提示你需要运行的命令。)
- 将你的点文件复制到该文件夹中。
- 将它们符号链接回到其目标文件夹(最常见的是
$HOME )。
- 将它们推送到远程存储库。
上面的步骤 4 是这项工作的关键,可能有些棘手。无论是使用脚本还是手动执行,工作流程都是从 dotfiles 文件夹符号链接到点文件的目标位置,以便对点文件的任何更新都可以轻松地推送到远程存储库。要对我的 .gitconfig 文件执行此操作,我要输入:
$ cd dotfiles/ $ ln -nfs .gitconfig $HOME/.gitconfig
(编辑:ASP站长网)
|