2012-01-15 15 views
3

ワークステーションにローカルリポジトリがあり、サーバー(phpfog.com)にリモートリポジトリがあります。私のアプリケーションはキャッシュファイルを生成し、誰かがプッシュするたびにそれらを(リモート上で)削除したいと思います:それは可能でしょうか? FYI:これらのファイルは.gitignoreを使用して無視されます(おそらく、これを使用する方法があるかもしれません)。Git:プッシュ後にファイルを削除する

私はgitフックについて聞いたことがありますが、それらを使用する方法はほとんど分かりません。

はあなたに

編集ありがとう:私はきれいなgitの(人跡未踏のファイルを削除)が、リモート上で、すべてのプッシュでやりたいです。これらのファイルはアプリケーションによって生成され、これをgitignore-ingすることで解決することはできません(実際にはgitignoredされています)。

答えて

4

私はポスト受信フックがあなたが探しているものだと思います。

リモートサーバーにすべてのキャッシュファイルを消去し、ポスト受信フックとして指定するbashスクリプトを追加するだけです。詳細はhttp://book.git-scm.com/5_git_hooks.html

+0

これを使用して問題を解決しますが、ファイルシステムのメンテナンスをGitの依存関係にするのはまったく間違っています。 – sciritai

+0

sciritai:私はそれを以下で説明しました。それは "ファイルシステムのメンテナンス"ではなく、プッシュと直接関連したアクションであり、何もありません。 – A123321

+0

Alexandr:あなたの答えをありがとう。これは私が必要とするものです。今、私はサーバー上でgit設定を変更する方法を理解する必要があります(しかし、可能かどうかはわかりませんが、私は技術サポートがすぐに返信してくれることを願っています) – A123321

1

なぜ人々はファイルをよりよく無視するのですか?ちょうどgit rm --cachedそれらをコミットして押してください。彼らが.gitignoreに正しく追加されていることを確認してください。誤ってこれらのファイルを誤って追加したり押したりしないようにします。

+1

あなたが何を意味するのか誤解していないことを願っています。しかし、キャッシュされたファイルは、アプリケーションがサーバー上で実行されるときに生成されます。私のワークステーションでコミットするとき、私はそれらを無視します。しかし、私はまた、リモートの元のキャッシュファイルを削除する必要があります。お返事ありがとうございます – A123321

+2

その場合は、キャッシュされたファイルのメンテナンスを実行するためにアプリケーションを更新する必要があります。これは、プロダクションサーバー上のファイルをクリーンアップすることを話している場合、gitに関する質問のようには聞こえません。 – sciritai

+0

アプリケーションが更新されたことをどのように知るべきですか? Gitはコードを書き換え、この新しいコードは古いキャッシュでは動作しない可能性があるので、pushの直後にgitignoreに記載されているフォルダの内容を削除する方法があると考えました。 – A123321