2017-05-18 26 views
0

git gitを使用してライブサーバに変更を展開します。セットアップGitデプロイメントフック削除されたファイルを削除しない

は、次のフック付きでのhtmlフォルダの外に裸のリポジトリです:

#!/bin/sh 
GIT_WORK_TREE=/var/www/html git checkout -f 

これは、変更されたファイルを更新し、新しいファイルを作成し、それが削除されたファイルを削除しません。

どうすればこの問題を解決できますか?

答えて

1

最後にこれを追加します。

GIT_WORK_TREE=/var/www/html git clean -df 

git cleanコマンドは、作業ディレクトリから人跡未踏のファイルを削除するために使用されます。それには-fが必要であり、-dは、それらを空のままにするのではなく、未追跡のディレクトリも削除します。

+0

裸のリポジトリ内のインデックスが割り当てられた( '--git-work-tree'または' GIT_WORK_TREE'を介して)作業ツリーに対応する場合、*これは必須ではありません。あなたの裸のリポジトリ内のインデックスが*他の*作業ツリーに対応している場合、一部の(まれな)ケースでは、更新されたファイルを変更していない危険があります。 – torek

+0

@torek、もう少し詳しく説明できますか?私はgitに新しいです。 裸のリポジトリのインデックスが割り当てられたワークツリーに対応するかどうかを確認する方法はありますか? – MployBy

+0

@Amber、私はローカルリポジトリに存在しない、作業ディレクトリのすべてのファイルを削除しますか?または、ローカルリポジトリで削除されたファイルだけが削除されたとしてコミットされますか?私は2位を目指しています。いくつかのフォルダが設計上リモートレポに存在しないためです。 – MployBy

関連する問題