2015-03-02 162 views
1

在我的項目中,我有配置文件有私人信息。我爲Github提供了一些示例模板,但是我的工作副本中有實際的配置,所以我可以從中進行構建,但不希望它們可用於提交。忽略git的配置

我試過使用.gitignore,但模板已經被跟蹤。我試過git rm filename但試圖刪除模板。我試過git update-index --assume-unchanged filenamegit update-index --skip-worktree filename,但是當使用git status時(以及在Github的Windows下提交文件),它們仍顯示爲「已修改」。

有沒有什麼辦法可以忽略我已經做的變化,而無需從Github中刪除模板?

回答

1

這看起來像什麼content filter driver(使用.gitattributes declaration)爲:

  • 塗抹部分可以更換模板內容與實際值(結賬)
  • 乾淨的部分可以恢復模板(上提交)

enter image description here

(從「012圖像從「Pro Git book」)

+0

將git認識到清潔的配置沒有改變,或者當我做'git add。'時它會被添加嗎?它讓我感到緊張,承諾這些文件並相信過濾器會清除它們。 – Chip 2015-03-02 20:17:22

+1

實際上,git狀態會顯示它們不變(在git add和git commit之前),因爲clean過濾器能夠將它們恢復到原始形式:所以不用擔心,添加和提交不會包含這些文件。 – VonC 2015-03-02 20:25:38

+0

我這樣做例如gitolite(https://github.com/VonC/compileEverything/tree/b7c1d6c48d76859605f4a06896e0e1f797656c82/gitolite),我替換shebang指令(https://github.com/VonC/compileEverything/blob/b7c1d6c48d76859605f4a06896e0e1f797656c82/gitolite/shebang_replace),但我恢復原始shebang指令(https://github.com/VonC/compileEverything/blob/b7c1d6c48d76859605f4a06896e0e1f797656c82/gitolite/shebang_restore):這些文件從不顯示爲已修改。 – VonC 2015-03-02 20:26:12