现在很多软件的配置都可以在线同步或者支持导入导出,可以很方便的在不同设备上使用。但电脑上还有很多本地配置文件没有办法同步,夸多个设备使用时很难保持一致,换电脑也很麻烦。其实可以使用 Git 来管理这些配置文件,既可以方便的备份、跨设备同步,还能进行版本控制,防止误操作。
主要思路就是在电脑上创建个裸仓,将工作区设置为所有配置文件的根目录,一般是用户的家目录。然后忽略掉所有文件,仅将需要备份的文件强制暂存起来就可以了。
具体操作如下:
- 先在本地创建个裸仓:
mkdir config.git cd config.git git init --bare
- 忽略工作区内的所有文件
echo "*" >> info/exclude
- 手动配置工作区为家目录(或其他所有配置文件的共同父目录)
git config core.bare false git config core.worktree ~
- 这时可以
git status
检查下配置是否正确,例如应该回显了nothing to commit
而不是整个工作区的文件 - 第一次添加文件的时候需要使用
-f
选项:git add -f ~/xxx.conf
,否则会提示文件已经被忽略了 - 剩下的步骤就和正常使用 Git 一样了,
git add -u
/git commit
/git push
/git pull
等
如果已经有了配置的仓库,需要在新设备上第一次恢复配置,具体操作步骤如下:
- 先克隆仓库到本地的裸仓库:
git clone --bare remote-repository-url config.git
- 手动配置工作区和忽略工作区的所有文件
echo "*" >> info/exclude git config core.bare false git config core.worktree ~
- 因为之前克隆的是裸仓,暂存区内没有内容,所以需要先执行
git reset
命令重建下暂存区 - 现在可以使用
git status
检查本地配置文件和远端配置文件的差异,或者使用git diff
对比 - 保险起见,应该
git checkout filename
逐个恢复,也可以使用git checkout ~
恢复所有配置