在 *nix 系統中,home 目錄下通常有許多程序的配置文件(rc files),它們能夠更改程序運行時的行爲。linux
如何管理並在多臺機器上分享、同步這些配置文件也算是一個棘手的問題,固然解決方法也有很多git
使用 git 之類的版本控制工具把整個 home 目錄保存下來,這其中 ignore 文件也有兩種處理方式github
示例:cat ~/.gitignore
shell
/* !/.gitignore !/.bashrc /some_dir/* !/some_dir/sub_dir/* # ...
示例:cat ~/.gitignore
ubuntu
/Desktop /Documents # ...
.gitignore
文件。把配置文件集中到一個 home 的子目錄,好比 ~/.dotfiles
,在 home 目錄建立連接到這個 .dotfiles
目錄的 symbolic link,這樣只須要把這個 .dotfiles
目錄使用 git
管理就行了vim
可是會遇到幾個問題bash
那麼就須要一個輔助管理 symlink 的工具,gnu stow 就是這樣的工具工具
# for mac $ brew install stow # for ubuntu $ apt-get install stow # show help $ stow -h
假設你的配置文件存放在 ~/.dotfiles
目錄下,結構爲設計
├── git │ ├── .gitconfig │ └── .gitignore_global ├── shell │ ├── .bashrc │ └── .zshrc
要把 git 配置 link 到 home 目錄下版本控制
# usage $ stow -d $HOME/.dotfiles -t $HOME git
這樣,.gitconfig
和 .gitignore_global
會被 link 到 home 目錄下
$ ls -al ~ lrwxr-xr-x .gitconfig -> .dotfiles/git/.gitconfig lrwxr-xr-x .gitignore_global -> .dotfiles/git/.gitignore_global
my dotfiles https://github.com/xieyunzi/dotfiles
使用了 stow 管理 dotfiles,crontab 自動處理一些更新任務
包含了 git, bash, zsh, tmux, vim 等等的配置,目前只在 mac 上使用
使用 *.local
文件存儲本機的差別性需求,會覆蓋同名文件的配置,好比 email 等配置,工做機器和本身的機器通常會不一樣
待續