🔧 My development environment and config
Note
这是我个人的 dotfiles 仓库,用于配置和管理我的开发环境。通过这个仓库,我可以在不同的 Mac 上轻松地保持一致的开发环境。
本仓库包含了一系列配置文件和脚本,用于设置和管理我的开发环境,包括但不限于:
这些文件是通过 Git Bare Repo 来管理的,这种方法使我能在保持 $HOME
目录整洁的同时又能使用 Git 来管理配置文件。如果你对这其中的缘由感兴趣,又想了解使用 Git Bare Repo 管理 dotfiles 的更多信息,欢迎阅读我之前写的一篇分享文档。
首先,克隆本仓库到本地:
git clone --bare <git_url> $HOME/.dotfiles
为了更方便地管理 dotfiles,你可以添加以下别名到你的 shell 配置文件(如 .zshrc 或 .bashrc):
alias dot='$(command -v git) --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
然后,重新加载你的 shell 配置:
source ~/.zshrc # 如果你使用的是 Zsh
# 或者
source ~/.bashrc # 如果你使用的是 Bash
为了避免在使用 dot
命令时看到未跟踪的文件列表,可以使用以下命令:
dot config --local status.showUntrackedFiles no
如果不设置的话,运行 dot status
你会发现列出来一大堆 untracked files,因为 $HOME
下所有文件都还没加入 Git 跟踪,但我们本意也不是要跟踪所有文件,这样全部列出来看着比较乱。
使用以下命令将仓库中的文件检出到你的 $HOME
目录:
dot checkout
如果遇到文件冲突,比如下面这种报错:
error: The following untracked working tree files would be overwritten by checkout:
.zshrc
Please move or remove them before you can switch branches.
Aborting
可以先备份已有的配置文件:
mkdir -p .dotfiles-backup
dot checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} .dotfiles-backupp/{}
然后再次尝试检出文件:
dot checkout
你可以使用以下命令来管理你的 dotfiles:
dot add <file>:添加文件到仓库
dot commit -m "message":提交更改
dot remote add origin <git_url>:配置远程仓库
dot push -u origin <branch>:推送 commit 到远程仓库,同时将远程仓库与本地的 branch 分支关联
dot push:推送更改到远程仓库
dot pull:从远程仓库拉取更新
对于上面这些步骤,操作起来还是比较繁琐的;有一些并不是经常使用的命令,所以也不容易记得。
因此,我们可以写一个脚本来达到一劳永逸的效果,就像 The best way to store your dotfiles: A bare Git repository 中提到的那样:
我自己也有一个用于配置开发环境的初始化脚本,当我拿到一台新的 Mac 时,只需要打开 Terminal.app,运行下面的命令即可完成开发环境的设置:
curl -o /tmp/macos-bootstrap.zsh https://raw.githubusercontent.com/liby/dotfiles/main/.config/scripts/macos-bootstrap.zsh && chmod +x /tmp/macos-bootstrap.zsh && /tmp/macos-bootstrap.zsh
非常方便。
如果你有任何改进建议或发现了问题,欢迎提交 Issue 或 Pull Request。