符号链接dotfiles

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 存储点文件,其中我写了有关管理多个设备的文章。


jwo*_*der 8

该错误消息表示您已经有一个文件~/.vimrc,ln拒绝覆盖.删除~/.vimrcln再次运行或ln通过传递-f选项让它删除:

ln -s -f ~/dotfiles/.vimrc ~/.vimrc
Run Code Online (Sandbox Code Playgroud)