将.vim~/.vimrc添加到github(又名点文件)

Joh*_*son 53 git vim dotfiles

我见过一些人用git repos和他们的点文件.我想知道他们是否只是

cd ~/
git init
git add .vimrc
// etc
Run Code Online (Sandbox Code Playgroud)

?那么他们是如何保持最新的?或者他们可能制作副本并同步它们?

你们推荐或使用什么策略?大多数情况下不想承诺并推动我的整个〜/

谢谢

sit*_*tif 72

制作你家的git存储库可能是一个坏主意(你将花费更多的时间来创建.gitignore文件而不是做你真正想做的事情).

我建议为你的dotfiles使用一个单独的git目录(例如.~/git/dotfiles),并为你的家创建符号链接(例如ln -s ~/git/dotfiles/.vim ~/.vim,等等).

如果您不想在每次想要在某处安装dotfiles时手动创建符号链接,可以使用如下脚本:https://github.com/gibfahn/dot/blob/master/link.

  • 此解决方案工作正常.但是,您不必花费过多的时间来管理`.gitconfig`.你可以忽略一切`./*`忽略一切`!.vimrc`不要忽略`.vimrc` (19认同)
  • +1。经过验证的解决方案,它确实有效。 (2认同)
  • 另一个有趣的工具是这个:https://github.com/thoughtbot/rcm您可以使用`./configure --prefix =〜/ git/dotfiles在本地轻松安装它. (2认同)
  • 如果你确实在homedir路线下了git,并用`./*`忽略了所有内容,请确保你重新配置你的全局`.gitignore`,这样它之后就不会与你所有的git repos冲突:`git config --global core .excludesfile~/.gitignore-global`(或沿着这些行的东西) (2认同)

rom*_*inl 53

我的~/.vim目录在版本控制下,而我的"真实" vimrc(我的所有设置中的目录)位于该目录中,位于~/.vim/vimrc:

~/
---- .vim/
---- ---- (plugins and stuff)
---- ---- vimrc
---- .vimrc
Run Code Online (Sandbox Code Playgroud)

我的常客~/.vimrc只有一行:

runtime vimrc
Run Code Online (Sandbox Code Playgroud)

无需创建符号链接或其他任何内容.

这就是我如何在已经安装了Git的新机器上推送我的配置:

$ cd
$ git clone git@github.com:romainl/dotvim.git .vim
$ echo "runtime vimrc" > .vimrc
Run Code Online (Sandbox Code Playgroud)

以下是整个创作过程.我假设您已经在Github上创建了一个名为"vimconfig"的帐户和一个repo,并且您已经精心打造~/.vimrc并且组织得很好~/.vim/.

$ cd
$ mv .vimrc .vim/vimrc
$ echo "runtime vimrc" > .vimrc
$ cd .vim
$ git init
$ echo "This is my Vim config." > README
$ git add *
$ git commit -m "My Vim config is versioned."
$ git remote add origin https://github.com/username/vimconfig.git
$ git push origin master
Run Code Online (Sandbox Code Playgroud)

此时,您应该在Github 本地存储库中具有相同的内容.

您可以正常管理该存储库,并在准备好后推送您的提交.简单.

请注意,只有当您需要/想要在多台计算机上同步您的配置或者某种程度上需要/想要与其他人共享时,整个Github才有用.如果你不这样做,根本就没有使用GitHub的真正意义.

(编辑)

Vim 7.4引入了一个新的,非常有用的方案:它寻找通常的方式~/.vimrc,~/.vim/vimrc因此对你来说更少的工作:

$ cd .vim
$ git init
$ echo "This is my Vim config." > README
$ git add *
$ git commit -m "My Vim config is versioned."
$ git remote add origin https://github.com/username/vimconfig.git
$ git push origin master
Run Code Online (Sandbox Code Playgroud)

当然,如果你必须处理混合的Vim版本,我最初建议的策略仍然有效:Vim知道该做什么,并且不会在无限循环中废弃.