使用git在home(〜)下版本控制配置文件的最佳方法

时间:2017-04-20 21:45:51

标签: git version-control

我想版本控制我~下的配置文件和脚本,例如.bashrc.vimrc.bash_profile等。但这需要{{1在主文件夹中会干扰主页下面的其他git repos,并且需要将所有其他文件添加到git init

最好的方法是什么?我正在考虑在专用文件夹中设置一个包含所有配置文件的repo,并将它们符号链接到原始位置但是这需要额外的步骤来为我需要同步的所有盒子上的所有新添加的文件创建符号链接synlinks可能不适用于所有应用。

最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

.gitignore支持模式,因此您可以使用它来枚举您想要控制的文件:

#Ignore all
/*

#But not these
!.bash*
!.vimrc
!etc...

就是这样。

顺便说一句,如果git看到一个包含.git的子文件夹 - 子文件夹将被忽略。

答案 1 :(得分:1)

我至少看到两种解决问题的方法。我们假设所有存储库都存储在~/mygits下。

  1. 此目录明确专用于所有git存储库的容器,并在.gitignore
  2. 中声明
    ~/.bash_profile
    ~/.bashrc
    ~/.git/*
    ~/.gitignore
    ~/mygits/**
    

    .gitignore

    的示例
    $ cat .gitignore
    mygits
    
    1. 将目标存储库(我们称之为mydotfiles)放在其他存储库旁边的~/mygits下...
    2. ~/mygits/mydotfiles/bash_profile
      ~/mygits/mydotfiles/bashrc
      

      ...并创建指向文件的链接

      ln -s mygits/mydotfiles/bash_profile ~/.bash_profile
      ln -s mygits/mydotfiles/bashrc ~/.bashrc
      

      在我看来,第二种方式更好,因为你不需要考虑阻止将其他东西从homedir放到这个存储库中。

      最后,希望我的解释清楚。