正如很多人一样,我在GitHub上有dotfiles。在我的.git
目录上有一个home
存储库,有时会给我带来麻烦。
git status
向我展示了大量未跟踪的文件。 我可以通过写一个忽略所有不是 dotfile 的.gitignore
来部分解决这个问题:
#.gitignore
!.*
.viminfo
.cache
# ...
如果我创建一个新目录mkdir foo && cd foo
而忘记做git init
我将使用我的家Git存储库而不是我应该创建的新存储库。所以我想通过将Git限制在某些文件夹来避免这个问题。
因为我通常不会push
/ pull
我的dotfiles,所以我遇到了这个问题,当我不使用它时,我只是重命名我的家Git存储库:
alias githide='mv .git .git_hidden'
alias gitshow='mv .git_hidden .git'
对这些问题有更好的选择吗?
答案 0 :(得分:3)
我对这些dotfiles使用符号链接并将它们保存在单独的文件夹中。
$ cd ~
$ ln -s myDotfilesRepo/.gitconfig
如果你想要更高级,可以使用GNU Stow来处理dotfiles。
假设您的dotfiles repo具有以下结构:
.
├── git
│ ├── .gitconfig
│ └── .gitignore
然后你可以用以下方式使用stow安装整个git包。
cd ~
git clone git@github.com:user/dotfiles.git
cd dotfiles
stow git
结果是两个文件都已符号链接
ls -la ~/.git*
lrwxrwxrwx 1 user user 27 aug. 13 10:17 .gitconfig -> dotfiles/git/.gitconfig
lrwxrwxrwx 1 user user 27 aug. 13 10:17 .gitignore -> dotfiles/git/.gitignore