2014-11-08 38 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

相關問題