如何使用Github管理dotfiles?

时间:2013-04-30 04:57:33

标签: github dotfiles

我将我的dotfiles存储在github中,因为没有自动化,所以很费劲。我必须自己更新。

有没有办法可以自动安装/更新/同步dotfiles?我的意思是在新服务器中,我下载dotfiles并执行install脚本将dotfiles复制到本地。一段时间后,我可以执行updateToRemote脚本将本地更改推送到远程仓库,在另一台服务器上,我可以执行updateToLocal脚本将远程更改拉到本地。

这样的事情。

7 个答案:

答案 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和&窗口:

dotsys

它将使用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 的文章。