如何使用Git跟踪用户的dotfiles?

时间:2016-04-27 06:43:20

标签: git dotfiles

正如很多人一样,我在GitHub上有。在我的.git目录上有一个home存储库,有时会给我带来麻烦。

  1. git status向我展示了大量未跟踪的文件。
  2. 我可以通过写一个忽略所有不是 dotfile .gitignore来部分解决这个问题:

    #.gitignore
    !.*
    .viminfo
    .cache
    # ...
    
    1. 我的主目录中的所有内容都成为我的Git存储库的一部分
    2. 如果我创建一个新目录mkdir foo && cd foo而忘记做git init我将使用我的家Git存储库而不是我应该创建的新存储库。所以我想通过将Git限制在某些文件夹来避免这个问题。

      因为我通常不会push / pull我的dotfiles,所以我遇到了这个问题,当我不使用它时,我只是重命名我的家Git存储库:

      alias githide='mv .git .git_hidden'
      alias gitshow='mv .git_hidden .git'
      

      对这些问题有更好的选择吗?

1 个答案:

答案 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