リモートサーバーにセットアップすることを勧められました
foo.com/~/bar.com # live webpage content
foo.com/~/bar.com.git # a bare repo
だから、私のローカルマシンから、私はすることができます
git Push
リモートマシン上のfoo.com/~/bar.com.git
にプッシュされます(フルパスはssh://[email protected]/~/bar.com.git
です
hookを追加して、プッシュ後にリモートサーバーがcd ~/bar.com
を実行し、すべてのコンテンツが更新されるようにgit pull
を実行する方法ローカルマシン)? (Mercurialのようにgit update
を実行する必要はありませんか?)
(これは サーバー上のフォルダーをgit cloneしてから編集してgit pushできませんか? 現在、foo.com
とcd ~/bar.com
にsshして、そこから待機して、ローカルからgit pull
を実行した後はいつでもgit Push
を実行できますマシン、しかしそれが自動的に行われるのは良いことです)
更新:特定の詳細とその方法を知っている場合にのみ回答を投稿してください。ここでグーグルで検索して、最初または2番目のグーグルの結果を投稿しても、助けにはなりません。
Update 2:~/bar.com.git/hooks
にアクセスし、コンテンツを含む新しいファイルpost-receive
を追加しました:
#!/bin/bash
cd ~/bar.com
git pull ../bar.com.git master
また、chmod 755 post-receive
、ローカルマシン上のファイルを編集し、git com -m "ok"
およびgit Push
を編集しても、リモートマシンのフォルダー~/bar.com
に変更が加えられません。
このためにpost-receive
リポジトリに ~/bar.com.git
フックを追加できます。これを行うには、~/bar.com.git/hooks/
ディレクトリにコンテンツを含む実行可能ファイルpost-receive
を追加します。
#!/bin/sh
unset $(git rev-parse --local-env-vars)
cd ~/bar.com
git pull
確認してくださいpost-receive
ファイルには実行可能ビット(755など)があります。
これで、何かが~/bar.com.git
リポジトリにプッシュされるたびに、~/bar.com
リポジトリが自動的に更新されます。
こちらもご覧ください
一部の環境変数を設定解除する必要がある理由を理解するため。
次のpost-update
スクリプトを使用します(必ず実行可能ビットを設定してください):
#!/bin/sh
rm -rf ~/public_html/xxx
git-archive --format=tar --prefix=xxx master | tar x -C ~/public_html
それはそれを行いますが、サイトが利用できない場合、短いウィンドウがあります。 git pull
を~/bar.com
で直接実行すると、gitの.git
ディレクトリが公開されるため、httpサーバーでそれをブロックするか、.git
をディレクトリ階層の上位に保持してください。 。何かのようなもの:
~
\
- repo
\
- .git
- bar.com
\
- your content