本文基于 Storing dotfiles with Git - This is the way

git init --bare $HOME/.dotfiles  

Bare 仓库需要一个工作树(work-tree)和 git 目录(git-directory)。

git --git-dir=$HOME/.dotfiles --work-tree=$HOME status  

--work-tree:声明仓库需要追踪的文件地址在 $HOME 中。

为了简便可以添加别名:  
```bash  
alias dotfiles="/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME"   
  
echo "alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME'" >> $HOME/.bashrc  
# 添加到 bash 配置  

使用 git 管理 dotfiles

dotfiles add ~/.config/polybar  
dotfiles commit -m "added polybar config"  
dotfiles push origin main  

查看仓库文件状态

dotfiles status  

为了不显示没有追踪的文件,使用以下命令:

dotfiles config --local status.showUntrackedFiles no  

迁移到新设备

未验证

git clone --bare https://github.com/<username>/dotfiles.git $HOME/.dotfiles && source ~/.zshrc   

历史记录

# To check the version history   
dotfiles log   
  
# To checkout to last working version  
dotfiles reset <commit-hash> --hard/soft  

关于 push 到远程仓库

默认仓库名称可能需要更改

dotfiles branch -m main  

添加远程仓库

dotfiles remote add origin https://github.com/<username>/dotfiles.git  
dotfiles branch --set-upstream-to=origin/main main