当前位置: 首页 > 科技观察

将“dotfiles”置于版本控制中

时间:2023-03-23 10:13:24 科技观察

通过在GitLab或GitHub上共享您的dotfiles,您可以在整个系统中备份或同步您的自定义配置。通过隐藏文件集(称为点文件)来定制操作系统是个好主意。在WhatShelldotfilescandoforyou中,H.WaldoGrunenwald详细介绍了为什么以及如何设置点文件。现在让我们深入探讨共享它们的原因和方式。什么是点文件?“点文件”是在我们的计算机上浮动的配置文件。这些文件通常以.在文件名的开头,例如.gitconfig,通常默认情况下被操作系统隐藏。例如,当我在MacOS上使用ls-a时,它只显示所有可爱的点文件,否则不会显示。dotfilesonmaster?lsREADME.mdRakefilebinmiscprofileszsh-customgit.gvimrc.zloginmisc.gitconfig.maid.zshrcprofiles如果我查看Git配置的.gitconfig,我可以看到很多自定义配置。我设置了帐户信息、终端颜色首选项和大量别名,使我的命令行界面看起来像我的。这是[alias]块的摘录:87#显示最新提交和当前状态之间的差异88d=!"gitdiff-index--quietHEAD--||clear;git--no-pagerdiff--patch-with-stat"8990#`gitdi$number`显示状态`$number`修订前和当前状态之间的差异91di=!"d(){gitdiff--patch-with-statHEAD~$1;};gitdiff-index--quietHEAD--||clear;d"9293#拉入当前存储库及其所有子模块的远程更改94p=!"gitpull;gitsubmoduleforeachgitpulloriginmaster"9596#从原点(github存储库的)签出拉取请求97pr=!"pr(){gitfetchoriginpull/$1/head:pr-$1;gitcheckoutpr-$1;};pr"因为我的.gitconfig有200我无意在我使用的每台新计算机或系统上重写的多行自定义,当然其他任何人也不会。这是共享点文件变得越来越流行的原因之一,尤其是随着社交编码网站GitHub的兴起。正式提倡共享点文件的文章是ZachHolman在2008年发表的《点文件意味着被复刻》。前提在今天仍然成立:我想与自己、dotfiles的新手以及那些分享了他们的自定义配置的人分享它们,这些配置教会了我很多东西。共享点文件我们中的许多人都有多个系统,或者知道硬盘驱动器来来去去,所以我们想要备份我们精心计划的定制。那么我们如何在环境之间同步这些精彩的文件呢?我最喜欢的答案是分布式版本控制,最好是可以为我处理繁重工作的服务。我经常使用GitHub,随着我对GitLab的体验越来越丰富,我相信我会一如既往地喜欢它。这些服务中的任何一个都是共享您的信息的理想场所。自行设置:登录您首选的基于Git的服务。创建一个名为dotfiles的存储库。(将其设置为公开!分享就是爱。)将其克隆到您的本地环境。(您可能需要设置Git配置命令来克隆存储库。GitHub和GitLab都会提示您运行命令。)将您的点文件复制到此文件夹中。将它们符号链接回它们的目标文件夹(最常见的是$HOME)。将它们推送到远程存储库。上面的第4步是工作的关键,可能很棘手。无论是使用脚本还是手动执行,工作流都是从点文件文件夹符号链接到点文件的目标位置,以便可以轻松地将点文件的任何更新推送到远程存储库。要为我的.gitconfig文件执行此操作,我键入:$cddotfiles/$ln-nfs.gitconfig$HOME/.gitconfig添加到符号链接命令的标志还有一些其他用途:-s创建符号链接而不是硬链接。-f在出错时继续做其他符号链接(这里不需要,但在循环中很有用),请参阅IEEE和OpenGroup的ln规范以及MacOS10.14.3上的版本。我只是在从别人的点文件中提取这些标志后才发现它们。您还可以使用一些其他代码来简化更新,例如我从BradParbs派生的Rakefile。或者,您可以像JeffGeerling在他的点文件中所做的那样使其非常简单。他使用这个Ansible剧本来对文件进行符号链接。通过这种方式可以很容易地使所有内容保持同步:您可以执行cron作业或偶尔从dotfiles文件夹中执行gitpush。附注:什么不能共享在继续之前,值得注意的是您不应该将内容添加到共享的点文件存储库中——即使它以点开头。任何会带来安全风险的内容(例如.ssh/文件夹中的文件)都不适合使用此方法进行共享。确保在在线发布之前仔细检查您的配置文件,并仔细检查文件中是否没有API令牌。我应该从哪里开始?如果您是Git的新手,我关于Git术语的文章和常用命令的备忘清单将帮助您入门。还有其他很棒的资源可以帮助您开始使用点文件。我几年前发现了dotfiles.github.io,并继续使用它来更广泛地了解人们在做什么。许多深奥的知识隐藏在其他人的点文件中。花点时间浏览一些,并随时将它们添加到您自己的内容中。我希望这是在您的计算机上拥有一致的点文件的愉快开始。