2015-10-20 148 views
-1

我有這個問題: 得到了一個$ MYAPP/application/config/database.php文件,其中包含有關如何連接到mysql dbms的所有信息。現在,這些數據在我的本地環境和生產環境之間是不同的。gitignore不工作 - 被忽略?

所以我做了一個.gitignore(在我的git項目的根目錄下 - $ MYAPP),它表明忽略來自提交的application/config/database.php文件。

現在,在遠程生產環境中,我修改了這個文件。當我對任何(而不是database.php)文件進行任何修改時,如何可能請求一個git狀態(其中沒有提到database.php),在遠程環境中推送並找到與本地環境相同的副本database.php版本? 看來,Git是「無視我的.gitignore文件」

感謝您的幫助 問候。

+0

您能告訴我們.gitignore條目嗎?是否已經添加了'database.php'?你在對它做出改變嗎? (你可以用'git log --stat'來檢查)你的遠程環境是如何更新的? (通常這不是由git完成的) – Schwern

+0

這是一個常見問題。這是因爲'.gitignore'並不意味着「忽略」。它有兩個不同的含義:「關閉未跟蹤文件」(在'git status'輸出中)和「在添加'所有'文件時不要自動添加*該文件」(例如'git add .' )。如果路徑已經在索引中,但這些都不會做任何事情。請參閱http://stackoverflow.com/a/23305143/1256452以瞭解有關標準「 - 未修改」解決方案的警告。 – torek

+0

[停止跟蹤並忽略Git中文件的更改]的可能重複(http://stackoverflow.com/questions/936249/stop-tracking-and-ignore-changes-to-a-file-in-git) – 1615903

回答

0

我猜可以猜到兩件事。首先,.gitignore only ignores untracked files。如果之前已添加application/config/database.php,並且您正在衝擊git commit -a,則將對其進行更改。

要檢查,請運行git log --stat並查看是否更改爲application/config/database.php。如果是這樣,那麼文件已經被添加,並且你已經提交了更改。要從Git中刪除它,但不刪除該文件,請使用git rm --cached application/config/database.php

如果是這樣,請注意您正在提交的內容。


另一種可能性是這與Git無關。你沒有說你的遠程環境是如何更新的。如果你有一個安裝腳本,它可能是正在做的事情。