Dan*_*ler 5 unix vim command-line
我无法通过符号链接dotfiles.我的主目录〜/ dotfiles中有一个文件夹,我已同步到github仓库.我试图将我的.vimrc文件放在〜/ dotfiles/.vimrc中并创建一个符号链接,将其放在〜/ .vimrc中.要做到这一点,我输入
ln -s ~/dotfiles/.vimrc ~/.vimrc
Run Code Online (Sandbox Code Playgroud)
但当我说它跑的时候
ln: /Users/danhessler/.vimrc: File exists
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Man*_*ani 10
有一个更好的解决方案来管理点文件,无需使用符号链接或任何其他工具,只需使用--bare
.
裸存储库的特殊之处在于它们省略了工作目录,因此您可以在任何地方创建存储库并设置,--work-tree=$HOME
然后您不需要做任何工作来维护它。
方法
首先要做的是创建一个裸仓库
git init --bare $HOME/.dotfiles
Run Code Online (Sandbox Code Playgroud)
要使用这个裸存储库,您需要指定--git-dir=$HOME/.dotfiles/
和 --work-tree=$HOME
,更好的是创建一个别名
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME
Run Code Online (Sandbox Code Playgroud)
此时,您的所有配置文件都被跟踪,您可以轻松使用新注册的 dotfiles 命令来管理存储库,例如:-
# to check the status of the tracked and untracked files
dotfiles status
# to add a file
dotfiles commit .tmux.conf -m ".tmux.conf added"
# push new files or changes to the github
dotfiles push origin main
Run Code Online (Sandbox Code Playgroud)
我还使用这种方式来同步和存储我的点文件,查看我的点文件存储库,并且可以阅读使用 Git 存储点文件,其中我写了有关管理多个设备的文章。
该错误消息表示您已经有一个文件~/.vimrc
,ln
拒绝覆盖.删除~/.vimrc
并ln
再次运行或ln
通过传递-f
选项让它删除:
ln -s -f ~/dotfiles/.vimrc ~/.vimrc
Run Code Online (Sandbox Code Playgroud)