私が成功するたびにコミットした後、特定のディレクトリに展開するには、以下のpost-commit
フックを使用しようとしている:GIT_WORK_TREEをポスト・コミット・フックで設定しないのはなぜですか?
#!/bin/sh
export GIT_WORK_TREE=/var/www/example/
export GIT_DIR=/home/mark/test/.git/
git checkout -f
しかし、私は次のエラーを取得コミットした後:
$ git commit -m 'An example commit.'
fatal: Unable to create '/var/www/example/.git/index.lock': No such file or directory
[master 0938e48] An example commit.
を...あたかもGIT_WORK_TREE
設定が無視されているかのようになります。この環境変数を設定しても機能しないように見えるのはなぜですか?私はgitバージョン1.7.4.1を使用しています。
:あなたが期待するよう、あなたのフックは次のようになりますので、あなただけの、
GIT_INDEX_FILE
の設定を解除する必要があるフックを動作させるために隠しやその他のコマンド? 'git --worktree --gitdir'は特定のコマンドでのみ動作するようです。 –
@Adam Dymitruk:私は '--work-tree = DIRECTORY'と' --git-dir = DIRECTORY'がコマンドに関係なくフックの外側で確実に動作することを発見しました。 (b)最終的な作業ツリーとリポジトリディレクトリがどのように計算されるかについての混乱する規則を覚えておかなくてはならないように、それらを絶対パスに設定してください。 –
これはフックの外にあります。いくつかの仕事は、いくつかはありません。私は、彼らのいくつかが相対的なパスのために動作しないかどうかを確認する必要があります。しかし、私は同じパスを使用しているだけで、コマンド。 –