0

私はこのGitセットアップをWebサイトの管理に使用しました:http://toroid.org/ams/git-website-howto

ポストレシーブフックをアクティブにするまで、物事は機能します。起動する前に、問題なく押したり引いたりできます。ただし、フックをアクティブにすると、次のようになります。

fatal: /usr/bin/git-checkout cannot be used without a working tree.
error: hooks/post-receive exited with error code 1

それでも適切にプルしますが、想定どおりにファイルをコピーしません(Webルートに)。しかし、受信後のフックは次のようになります。

#!/bin/sh
GIT_WORK_TREE=/home/domains/mydomain/html/ git checkout -f

では、なぜgitは作業ツリーがないことについて不平を言っているのでしょうか?同じ構文が他のWebサイトでも機能しました。

4

1 に答える 1

2

ここで実行しようとしているように見えるものではgit archiveなく、おそらく使用する必要があります(フックを使用して、ファイルをWebサーバーのドキュメントルートにエクスポートします)。git checkout

git archive HEAD | tar -xC /home/domains/mydomain/html/

これにより得られる利点の1つは、特定のファイルをリポジトリからエクスポートしない機能です(.gitattributesexport-ignoreフラグを使用)。

于 2011-10-05T16:57:21.533 に答える