我看到有些人在他们的 Git 存储库中存储了其点文件,我想知道他们是否只是
cd ~/
git init
git add .vimrc
// etc
他们是通过什么方式保持更新的?他们可能会制作副本并同步吗?
你们推荐或使用什么样的策略?我大多数情况下不想提交和推送整个~/目录。
谢谢
把你的家目录变成Git仓库可能不是一个好主意(你将会花费更多时间来创建.gitignore文件而不是做你想做的事情)。
我建议为你的点文件使用单独的Git目录(例如~/git/dotfiles
),然后在你的家目录中创建符号链接(例如ln -s ~/git/dotfiles/.vim ~/.vim
等)。
如果你不想每次都手动创建符号链接安装你的点文件,你可以使用下面这样的脚本:https://github.com/gibfahn/dot/blob/master/link。
我将我的~/.vim
目录放入版本控制,并将我的“真正”的vimrc
(包含所有设置的那个)放在该目录下,位置是~/.vim/vimrc
:
~/
---- .vim/
---- ---- (plugins and stuff)
---- ---- vimrc
---- .vimrc
我的常规~/.vimrc
只有一行:
runtime vimrc
不需要创建符号链接或其他操作。
以下是我如何在已安装Git的新机器上推送我的配置:
$ cd
$ git clone git@github.com:romainl/dotvim.git .vim
$ echo "runtime vimrc" > .vimrc
以下是整个创建过程。我假设您已经在Github上创建了一个名为“vimconfig”的账户和仓库,并且您已经拥有一个精心制作的~/.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
此时,你的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
当然,如果你需要处理混合的Vim版本,我最初建议的策略仍然有效:Vim知道该怎么做,不会无限循环。
.vimrc
中,我写道:let $MYVIMRC="<path_to_vimrc_in_bundle_folder>"
source $MYVIMRC
...
call pathogen#infect()
我不希望给代码打版本号!
这样可以让我在家里的Linux机器和工作中的Windows电脑之间共享我的配置。我还可以放入官方的.vimrc
配置文件,特定于该机器的配置,或者我不想公开的配置(比如包含登录名和密码的dbext配置文件)。
请查看StreakyCobra在Hacker News上的解决方案:
git init --bare $HOME/.myconf
alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME'
config config status.showUntrackedFiles no
其中~/.myconf
是裸的git仓库位置。然后,可以像下面这样将$HOME
中的任何文件版本化:
config status
config add .vimrc
config commit -m "Add vimrc"
config add .config/redshift.conf
config commit -m "Add redshift config"
config push
.gitconfig
文件。相反,你可以忽略掉所有的./*
,然后再把.vimrc
文件排除在外,即!.vimrc
,这样就不会被忽略了。 - Sethish./configure --prefix =〜/ git / dotfiles
轻松在本地安装它。 - samvv./*
的文件,请确保重新配置全局.gitignore
,以免与之后的所有git仓库发生冲突:git config --global core.excludesfile ~/.gitignore-global
(或类似的命令)。 - waffl