1

私は非常に奇妙な問題を抱えています。これについてアドバイスをお願いします。

変更を REMOTE サーバーにプッシュしても、変更が表示されないことがあります。リモート マシンに対して ssh を実行し、 を実行すると、次のgit statusように表示されます。

変更: app/runtime/application.log

問題は、すべてのディレクトリと、そこにある特定のファイルが .gitignore の対象になっていることです。

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

直接行われるので ftp はなく、プッシュとプルのみが使用されています。

おそらくそれらはapp/runtime/application.logライブサイトに書き込まれたものであるためapplication.log、リポジトリ内のものとは異なり、その場合、古いバージョンに上書きされるため、git は pull を拒否します。application.log

これは、同じディレクトリにある他の多くのファイルで発生する可能性があります。アプリケーションが実行された瞬間に、ライブ サイトによって作成される可能性のあるファイル。

私の質問は、どうすればこれを回避できるでしょうか? ここで .gitignore が効果的ではないように見えるのはなぜですか?

ps - サーバーフックなど、さらに詳細を提供する必要がある場合は、お知らせください。

4

2 に答える 2

8

ルールを適用するapp/runtime/application.logに gitに追加したようです。既存のファイルに対する git の認識には影響せず、新しく作成されたファイルのみに影響します。.gitignoregitignore

git rm --cached app/runtime/*git のインデックスからログを削除する必要があります。

于 2012-05-27T10:27:54.067 に答える
2

からman gitignore:

gitignore ファイルは、git が無視すべき意図的に追跡されていないファイルを指定します。git によって既に追跡されているファイルは影響を受けません

したがって、application.logファイルがリポジトリに追加されても、gitignore何もしません。

解決策は、これらのファイルをリポジトリから削除することです。本当にログ ファイルを同期する必要がありますか?

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

等々。

于 2012-05-27T10:28:01.883 に答える