我将我的dotfiles存储在github中,因为没有自动化,所以很费劲。我必须自己更新。
有没有办法可以自动安装/更新/同步dotfiles?我的意思是在新服务器中,我下载dotfiles并执行install
脚本将dotfiles复制到本地。一段时间后,我可以执行updateToRemote
脚本将本地更改推送到远程仓库,在另一台服务器上,我可以执行updateToLocal
脚本将远程更改拉到本地。
这样的事情。
答案 0 :(得分:30)
有关dotfiles的主要信息来源是dotfiles.github.io
。
它引用了基于符号链接方法的Using Git and Github to Manage Your Dotfiles等博客文章。
对于初学者,我们将所有的dotfiles放入一个名为dotfiles的文件夹中,如下所示:
/home/smalleycreative/dotfiles/vimrc
。
然后,我们将简单地从我们的主目录中对它们进行符号链接。
Jaime提到了Atlassian教程“The best way to store your dotfiles: A bare Git repository”
该技术包括使用特制别名将Git裸存储库存储在“side”文件夹(如
$HOME/.cfg
或$HOME/.myconfig
)中,以便针对该存储库运行命令,而不是通常{ {1}}本地文件夹,会干扰周围的任何其他Git存储库 (然后将dotfiles文件夹作为git repo进行管理)
答案 1 :(得分:4)
嗯,三年之后,没有人提出任何好事,所以我对这个问题进行了抨击。它与平台无关,与shell无关,除了可用的bourne兼容shell(bash,zsh,ksh等)之外没有其他依赖项。它适用于mac,linux和&窗口:
它将使用github和多台计算机自动同步对dotfiles的更改以及许多其他功能。
答案 2 :(得分:1)
我正在使用git repository(github)和bash脚本来创建符号链接。但现在我发现这个工具看起来更强大了。看看这个: https://github.com/shanx/python-dotfiles
答案 3 :(得分:1)
我发现了一种使用普通git来管理你的dotfiles的有趣方法,不需要符号链接。这样,你应该能够按常规方式进行推拉:
<强>设置强>
git init --bare $HOME/.myconf
alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME'
config config status.showUntrackedFiles no
我的〜/ .myconf目录是一个git裸存储库。
<强>用法强>
然后,通常的git命令可以与git别名一起使用,例如配置或你选择的任何东西。
config status
config add .vimrc
config commit -m "Add vimrc"
config push
<强>优势强>
更多信息
答案 4 :(得分:0)
使用git push/pull
命令更新/同步您的dotfiles(GitHub充当“中央”存储库)。
在谈到符号链接dotfiles时,我写了一篇关于它的文章。看看:manage your dotfiles with ease。
答案 5 :(得分:0)
主要思想是拥有一个独立的目录(通常称为.dotfiles),其中包含您想要在git中跟踪并在主目录中具有符号链接的所有真正的dotfiles。
这种方法已经做了很多工作,所以我建议你检查 DFM (dotfiles manager):
答案 6 :(得分:0)
我也在寻找一些方法来以最少的步骤设置新机器,经过一段时间后我发现几乎所有的开发人员都使用 git 来存储和共享这些文件和符号链接来同步它们。
>嗯,符号链接有效,但它不是将本地文件同步到 git 存储库的最佳方式。有一个更好的解决方案,由 Atlassian 的人编写 - https://www.atlassian.com/git/tutorials/dotfiles。
因此,git bare
存储库是将文件与远程副本同步的最佳和最优雅的方式,创建一个 bash 脚本来自动安装和设置。
管理这些点文件的技巧是创建一个裸 git 存储库。如果您是从头开始并且之前没有跟踪过您的点文件,请在 $HOME 目录中创建一个裸仓库。
git init --bare $HOME/.dotfiles
为了更容易使用,我们将其别名为 dotfiles,我们将使用它而不是常规 git 与我们的 dotfiles 存储库进行交互。
alias dotfiles="/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME"
现在我们可以使用 dotfiles 命令跟踪我们的 dotfiles,其中一些示例是:
# to check the version history
dotfiles log
# to check the status of the tracked and untracked files
dotfiles status
# to add a file for tracking
dotfiles commit .vimrc -m ".vimrc added"
# push new files or changes to the github
dotfiles push origin main
我也使用这种方式来同步和存储我的 dotfiles,see my dotfiles repository 并且可以在 Tooling is hard and necessary 阅读我写的关于管理多个设备的 dotfiles 的文章。