10

このガイドを使用して、リモートオリジンのgitリポジトリにプッシュするときに、gitを使用してWebサイトで変更を自動公開しました。

http://www.lwp.ca/james/2010/03/using-git-to-manage-online-website-projects/

これが私の/hooks/post-updateファイルです:

cd ../../public_html/dir/wbg
env -i git pull

これが私のディレクトリ構造です:

/home/git/wbg.git<-私のリモートgitリポジトリ

/ home / public_html / dir /wbg<-私のWebフォルダ

私が走るとき

git push origin master

リポジトリは更新されますが、Webフォルダはまだ空です。何か案は?

編集:将来のトラフィックでこれが発生した場合、私の本当の問題は、リモートの発信元と宛先のWebサイトディレクトリの両方がgitリポジトリである必要があることでした。そのフォルダーがgitリポジトリでもない限り、プロジェクトを新しいフォルダーにコピーするように設定することはできません。

4

3 に答える 3

13

http://toroid.org/ams/git-website-howtoで、1つのgitリポジトリのみを使用し、すべてのメタデータと以前の履歴をDocumentRootの外部に残すことができるより良い代替案を見つけることができます。

あなたが使用したガイドと私がリファラーを別の記事にリンクしたガイドはどちらも基づいていますが、私がリンクしたガイドは、#gitIRCチャネルで新しいユーザーを誘導するための好ましいガイドのようです。

于 2011-02-11T01:41:32.367 に答える
7

ここから離れることはそれほど多くありませんが、これと同様の方法をうまく使用したことを報告できます。

私の目的では、ベアサーバーリポジトリを「ハブ」と呼び、Webに面したリポジトリを「プライム」と呼びます。サーバーのhtdocsディレクトリ(Prime)でgitリポジトリを適切に初期化し、変更をベアリポジトリ(Hub)にプッシュするか、プルしたことを確認してください。

これはpost-update私が使用するフックであり、Hubリポジトリのhooksディレクトリにあります。

#!/bin/sh

echo
echo "*** Pulling changes into Prime"
echo

cd /path/to/htdocs/ || exit
unset GIT_DIR
git pull hub master

exec git-update-server-info

これが実行可能であることを確認してください!疑わしい場合は、post-update.sampleファイルを編集し、完了したら拡張子を削除し.sampleてください。エコーされたテキストは、コピーが実際に行われているという素晴らしいフィードバックを提供します。そのテキストが表示されない場合は、変更をプルしていません。また、リモートリポジトリを「ハブ」と呼ぶ予定がない場合は、「origin」または使用することにしたものに置き換えてください。

私のPrimeリポジトリとローカルリポジトリが強打から抜け出さないようにするための予防策として、私はこれをPrimepost-commitフックとして持っています:

#!/bin/sh

echo
echo "*** Pushing changes to Hub"
echo

git push hub

次に、変更をハブからローカルリポジトリにプルするだけです。

于 2011-02-09T05:38:24.843 に答える
1

更新後を取得して、デバッグ出力をエコーすることから始めることができます。標準出力と標準エラー出力の両方がもう一方の端のgitsend-packに転送されるため、メッセージをエコーするだけで、gitpushを実行したクライアントにこれらが表示されます。単語のガイドに従い、更新後のスクリプトを実行可能にし、リポジトリをWebフォルダーに複製したと仮定します。

于 2011-02-08T20:58:19.133 に答える