2012-05-27 79 views
1

我有一個很奇怪的問題,我希望知道你的建議。Git忽略 - 應用程序日誌

有時,當我將更改推送到REMOTE服務器時,更改不會顯示。 我做的ssh到遠程機器上,我做了git status,我看到:

修改:應用程序/運行/ application.log

的事情是,所有的目錄,到現在還,那裏的特定文件正在被.gitignore定位。

/nbproject/ 
/app/runtime/ 
/public_html/assets/ 
/app/runtime/application.log* 
/app/runtime/error.log* 

沒有ftp直接做,只有推拉已經被使用。

也許他們的東西寫入app/runtime/application.log直播網站上,所以application.log是從一個存儲庫中的不同,當這種情況發生混帳拒絕拉,因爲它會用它覆蓋application.log到舊版本。

這可能發生在同一目錄中的其他許多文件上。應用程序運行的那一刻可以由實時站點創建的文件。

我的問題是,我們如何避免這種情況? 爲什麼.gitignore在這裏似乎不起作用?

ps - 如果我需要提供更多的細節,如服務器鉤子或其他東西,請讓我知道。

回答

7

聽起來像你加git 之前應用.gitignore規則。 gitignore不影響git對現有文件的認識,只有新創建的文件。

git rm --cached app/runtime/*應該從git的索引中刪除日誌。

+0

我們是否應該同時在本地和遠程回購? – MEM

+1

@MEM:我假設它在兩個回購中都被跟蹤?然後你應該從本地刪除它,推送提交,並嘗試拉遠程。如果失敗了(可能會),將它從遠程移除,然後再次進行拉/合併 - git應該合併所有更改而不會有進一步的問題,因爲它們在兩側都是相同的。 – DCoder

+0

最後一個問題:我在我的機器上完成了這項工作,並且所有工作似乎都正常。推和拉沒有問題。其他程序員也推動和拉動這個項目,也需要在他們的本地機器上做到這一點?或者,因爲它已經在照顧,不需要什麼都不做,因爲git不會再考慮這個問題了?再次感謝。 – MEM

2

man gitignore

一個gitignore文件指定的git應該忽略故意未跟蹤文件。 已被git跟蹤的文件不受影響

因此,如果您的application.log文件被添加到存儲庫中,則gitignore將不會執行任何操作。

解決方法是從存儲庫中刪除這些文件。你真的需要同步日誌文件嗎?

git rm --cached app/runtime/application.log 

依此類推。

+0

@爲您的帖子感謝很多rodrigo。乾杯。 – MEM