Monthly Archives: December 2013

用homeshick管理dotfiles

无论是Ubuntu还是Fedora还是其它Linux发行版,用户的配置文件尤其是.bashrc总是一件很重要的事情,这关乎到“用户体验”。为了在不同的电脑上有相同一致的“体验”,比如说公司和家里的电脑,伟大的程序猿们想出了不少解决方案,其中homeshick是个不错的东东。用了一阵感觉良好,总结一下。

原理
homeshick把配置文件集中放在一起(~/.homesick/repos/<repos>),并用git来管理/同步/更新。
在$HOME目录下用symbol link把实际的配置文件link过来,比如说像这样:

.bashrc -> /home/<user>/.homesick/repos/dotfiles/home/.bashrc
.gitconfig -> /home/<user>/.homesick/repos/dotfiles/home/.gitconfig

安装
首先,你得有git, 最好还有github帐号,这样方便维护你自己的dotfiles。
然后:

git clone git://github.com/andsens/homeshick.git $HOME/.homesick/repos/homeshick
printf '\nsource "$HOME/.homesick/repos/homeshick/homeshick.sh"' >> $HOME/.bashrc
. ~/.bashrc

安装完毕

使用
如果想从头开始用自己的配置文件,可以生成一份自己的repo,见下面的命令和注释

homeshick generate <dotfiles>  # 生成一个repository
homeshick track <dotfiles> .bashrc  # 生成一个symlink,并把.bashrc添加到repo里
homeshick track <dotfiles> .xxx  # 其它你想添加的dotfile
homeshick cd <dotfiles> # cd到repo的文件夹
git add home # 添加到git
git commit -m "Initial commit, add .bashrc" # commit
git remote add origin [email protected]/<gitname>/<dotfiles> # 添加到github
git push -u origin master   # Push到github
cd - # 返回

如果在另外一台机器上想使用刚才添加过的dotfile,(比如说家里的机器,或者新安装了系统)
首先,按上面的步骤安装homeshick
然后:

homeshick clone <gituser>/<dotfiles> # clone github上的repo, 并自动生成symlink

搞定!

其它
Check dotfiles有没有更新

homeshick refresh

在文件夹里的dotfiles,比如说vim vundle,一般在 .vim/bundle/vundle

homeshick cd <dotfiles>
git submodule add https://github.com/gmarik/vundle.git home/.vim/bundle/vundle
homeshick link

Q.E.D.

Notes
1) Homeshick github: https://github.com/andsens/homeshick
2) 小心不要commit敏感信息,比如密码/API key,等等。要是真不小心commit到github了,参考这篇文章: https://help.github.com/articles/remove-sensitive-data

Share