2014-11-08 81 views
2

我正在寻找一种开放源码的版本控制系统,可以配置为仅跟踪文件系统周围的少量单个文件。与.gitignore相反。是否有可以与白名单而不是黑名单一起使用的(开放源代码)VCS?

用例跟踪我安装操作系统后所做的更改。许多变化都在/ etc之外,所以我不能只在/ etc下进行修订控制。使用git的情况下,拥有/修改控制权似乎很慢。

看来我可以使用.gitignore如下。要跟踪,比如说,在/ usr /共享/终止/终止:

* 
!/usr 
/usr/* 
!/usr/share 
/usr/share/* 
!/usr/share/terminator 
/use/share/terminator/* 
!/usr/share/terminator/terminator 

但这似乎有点笨拙(即使我到自动生成的.gitignore)。有没有更好的方法(或更合适的版本控制系统)?

+2

使用配置管理工具,像木偶。 – 2014-11-08 04:42:09

+0

有趣,我会尝试。谢谢! – Tom 2014-11-08 18:01:28

回答

3

我认为你可以使用另一种解决这个与混帐。请注意,一旦git已经被跟踪,即使它处于忽略规则中,git也会继续跟踪文件。因此,假设你不想经常跟踪新文件,

  1. 添加所有你真的想跟踪

    git add file1 file2 dir1/file3 dir1/file4 dir1/dir2/file5 dir2 
    
  2. 使用提交这些文件的文件

    git commit -m "msg" 
    
  3. 将忽略规则添加到您的.gitignore以忽略所有其他文件

    echo "*" > .gitignore 
    
  4. 现在,如果您对任何现有文件进行了更改,它们将显示在git status,git diff等等。您可以使用git add filename来添加它们并正常操作它们。

  5. 到新的文件下一次开始增加,则需要使用-f

    git add -f new_file1 
    git commit -m "msg" 
    
+0

他有他的仓库在文件系统的根目录? – 2014-11-08 04:50:54

+0

@AndrewC我假设你的意思是询问如果在任何子目录中存在存储库会发生什么?那么,在这个存储库中,这些子文件夹的每个存储库都将被忽略。在每个子文件夹库中,git会注意到能够检测到这个存储库的存在--git查找第一个.git文件夹,它可以在父目录链中找到它。 – 2014-11-08 05:21:17

+0

这是修辞。表现会很糟糕。 – 2014-11-08 05:22:42

相关问题