Skip to main content

如何保存 dotfiles

·313 字·1 分钟
工具 & 生产效率

dotfiles - 你肯定知道这个东西是什么,不然就不要往下看了

要用到的命令 alias #

# !! dotfiles !!
alias dot='/usr/bin/git --git-dir=$HOME/.mdot/ --work-tree=$HOME'
alias dotadd='/usr/bin/git --git-dir=$HOME/.mdot/ --work-tree=$HOME add '
alias dotcmt='/usr/bin/git --git-dir=$HOME/.mdot/ --work-tree=$HOME commit -a -m "dotfile commit"'
alias dotpush='dotcmt && /usr/bin/git --git-dir=$HOME/.mdot/ --work-tree=$HOME push -u origin master'
alias dotstat='/usr/bin/git --git-dir=$HOME/.mdot/ --work-tree=$HOME status'

本地初始化 #

$ git init --bare $HOME/.mdot
$ dot config --local status.showUntrackedFiles no
$ echo ".mdot/" >> $HOME/.gitignore
$ dot remote add origin git@github-fastzhong:fastzhong/mdot.git
  • 建立一个方便的 git 命令行 alias,放入 .zshrc(或者 .bashrc)
  • 建立一个 “Git base repository” .mdot,用这个 Git 仓库跟踪所有的 dotfiles
  • “local” 和通常版本控制情况不同,默认下不显示没有跟踪的文件状态(跟踪文件必须先显式指明)
  • 让 git 忽略 .mdot/,因为 .mdot/ 本身是仓库
  • 加入到 Github

接下来就跟踪 dotfiles #

例如:

$ dotstat
$ dotadd .zshrc
$ dotcmt
$ dotpush

另一台电脑同步 #

安装时,也很简单,先把 mdot 仓库克隆到本地:

$ git clone --bare https://github.com/fastzhong/mdot.git $HOME/.mdot

然后重复初始化的步骤,最后 checkout:

$ dot config --local status.showUntrackedFiles no
$ echo ".mdot/" >> .gitignore
$ dot checkout