2014-10-29 85 views
1

我改變了我不想推送到遠程倉庫的配置文件中的一些設置。〜/ .gitignore和`git update-index --assume-unchanged`有什麼區別

我希望它只在本地生效一個項目。

我看到有幾個方法可以這樣做:

Per Computer: through settings in ~/.gitconfig

  • 的git更新指數--assume-不變(2)

我正在使用SourceTree,並且僅在使用選項(2)時纔看到文件從UI中消失。 (1)和(2)之間的區別是什麼?

(1)和(2)之間的區別是什麼?

這是否真的意味着當我在使用選項(1)後在SourceTree中看到它們時,文件不會被忽略?

回答

1

.gitignore文件可防止文件顯示爲要添加到存儲庫的文件。如果該文件已被添加到.gitignore文件中,則該文件已存在於回購站中,該文件的任何更改都將由git顯示並可提交。 .gitignore設置僅影響回購路徑中的新文件。您可以使用它來保存由IDE創建的臨時文件,或者編輯文件以顯示並清除當您執行git status時修改的文件列表。

git update-index --assume-unchanged根本不顯示文件已被更改。如果您對該文件進行了任何修改,那麼git將不會在git status中顯示它已被修改。你可以在用戶的​​配置文件中使用它。當存儲庫被克隆時,他們需要擁有該文件,但可能會有一些他們需要的更改,以便他們可以使用代碼(即更改其本地計算機的文件路徑)。但是你不希望他們在引入更改時不小心提交了文件並將其他文件搞亂了。

對於配置文件的更改,您希望使用git update-index選項。你想在回購協議中的配置文件,但你不想提交更改。

+0

'update-index'是一個[plumbing命令](http://git-scm.com/book/az/v1/Git-Internals-Plumbing-and-Porcelain),其實並不是終端用戶。當然,很多人使用它,沒有什麼問題。但如果可以的話,我建議避免它。不使用'update-index'的配置文件的一個好選擇是[提交模板文件](http://stackoverflow.com/a/5658545/354577),例如, 'settings.default.ini',並建議用戶將其複製到應用程序所需的配置中,例如'settings.ini',並根據需要進行修改。 – Chris 2014-10-29 16:38:11

+0

然後'.gitignore'' settings.ini'文件? – 2014-11-02 08:07:40

相關問題