0

私はこのチュートリアル「Gitを使用してWebサイトを管理する」に従い、Towerを使用してローカルリポジトリをコミットしてリモートサーバーにプッシュしました。プッシュは次のメッセージで成功します。

Pushing to ssh://user@mysite.com/~/git/tprevo.git
stdin: is not a tty
Counting objects: 40, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (37/37), done.
Writing objects: 100% (40/40), 171.95 KiB, done.
Total 40 (delta 3), reused 0 (delta 0)
To ssh://user@mysite.com/~/git/tprevo.git
 * [new branch]      master -> production
updating local tracking ref 'refs/remotes/production/production'

Successfully created tracking connection.

受信後のフックが実行されていることを確認しましたが、checkoutコマンドは、プッシュされたコードを作業ディレクトリとして設定したと思われるものに追加しません。私は一日中これを理解しようとしてきました。

受信後:

#!/bin/sh
GIT_WORK_TREE=/home/tprevo/public_html/tprevo git checkout -f

私はGitを初めて使用し、学ぶことに非常に熱心です。これをデバッグするための最良の方法は何ですか?

4

1 に答える 1

7

わかりました...同様の設定があります...ファイルは実行可能ですか?ファイル属性を確認してください...

ls -la post-receive

実行可能でない場合は、chmodする必要があります...

sudo chmod +x post-receive

アップデート

名前付きブランチがあることに気付いた場合、受信後フックのチェックアウトコマンドで具体的にしたいと思うかもしれません...

git checkout -f production
于 2012-06-20T23:36:06.473 に答える