2011-04-07 59 views
5

可能重複:
git: can i commit a file and ignore the content changes?Git:必須分發但忽略/未重新上傳的文件?

我有一個簡單的問題,我希望有一個簡單的解決方案。我有一個倉庫,有一個文件,每個人在克隆repo時都需要下載,但是這個文件不應該被重新加載(因爲它是一個配置文件,與特定於數據庫的用戶名/密碼和路徑) - 只有在本地使用時纔會進行更改。

我想要做的是忽略我在本地對該文件所做的任何更改,因此當我將更改推送到我的回購時,文件不會更新。這怎麼能實現?

應該注意的是:

  1. 當我克隆回購協議,該文件顯示出來,但是當我忽略它(僅限本地,而不是通過的.gitignore)我要untrack它,而當我這樣做,並將更改推回到服務器,任何克隆回購的人都不會下載文件< <不受歡迎的行爲。

  2. 如果我忽略該文件,但我不untrack它,該文件仍顯示在我的工作目錄,等待COMMITED < <意外的行爲。

+0

確實。正如在該鏈接(有用的順便說一句,謝謝!)正在使用git update-index --assume-unchanged(在這裏徹底解釋:http://goo.gl/UZi0E)。根據我所看到的,通過Tower.app無法做到這一點。 – AeroCross 2011-04-07 19:37:44

回答

6

提交一個示例文件,gitignore真實姓名,並讓您的貢獻者將示例複製到適當的位置,然後對其進行配置。或者,提供一個設置腳本來複制示例並執行這些步驟。

+0

這也是一個很好的選擇(因爲在我的應用程序中,沒有太多配置文件需要修改,只有2個) - 我猜測,例如,Moodle(config-dist.php)和Wordpress(wp- config-example.php,如果我記得正確)在他們各自的版本控制系統中使用這種方法。 – AeroCross 2011-04-07 19:58:51

0

這可以通過塗抹/清除腳本正確解決。

或者,執行部署的腳本會重置用戶名和密碼。

彎曲跟蹤和忽略不是解決此問題的方法。

希望這會有所幫助。

+1

謹慎舉例?我對Git相當陌生,所以我不知道塗抹/乾淨腳本是什麼。我也不理解「或者,執行部署的腳本重置用戶名和密碼」部分。 – AeroCross 2011-04-07 19:56:50