2

別のワークツリーで Git リポジトリを作成しようとしています。私はこのチュートリアルに従って手紙を書きました: http://caiustheory.com/automatically-deploying-website-from-remote-git-repository

ローカル リポジトリからコミットして、リモートにプッシュできます。ワークツリーとして指定したファイル パスには、プッシュしたファイルが含まれていません。

ファイル パスが間違っているのではないかと考えています (私は MediaTemple GS を使用しています) が、プッシュしても Git はエラーをスローしません。

これが私のリモートからの設定です:

[core]
repositoryformatversion = 0
filemode = true
bare = false
worktree = /home/xxxxx/domains/xxxxxx.com/html/b

[receive]
denycurrentbranch = ignore

私の post-receive および post-update フックは両方とも 777 であり、両方にこれが含まれています:

#!/bin/sh
git checkout -f

提供されたヘルプに本当に感謝します。

ありがとう、

--ニック

4

1 に答える 1

1

次のようなものが必要です。

https://github.com/richo/git_template/blob/master/hooks/post-receive

またはより簡潔に:

#!/bin/sh

# Kludge to read the last ref
while read old new ref; do
real_sha=$new
done

GIT_WORK_TREE=$PWD/../ git checkout -qf $real_sha

基本的に、新しい参照は標準入力に渡されるpost-receiveため、手動で読み込む必要があります。

フックが行っていることは、既存の参照を強制的にチェックアウトすることです。

于 2012-07-22T04:01:04.547 に答える