37

リモートサーバーにセットアップするようにアドバイスされました

foo.com/~/bar.com       # live webpage content
foo.com/~/bar.com.git   # a bare repo

だから、私のローカルマシンから、私はすることができます

git push

そしてそれはリモートマシンにプッシュしfoo.com/~/bar.com.gitます(フルパスはssh://peter@www.foo.com/~/bar.com.git

フックを追加して、プッシュ後にリモートサーバーがすべてのコンテンツを更新cd ~/bar.comするようにするにはどうすればよいgit pullですか(ローカルマシンと同じ)?git update( Mercurialのように実行する必要はありませんか?)

(これは、サーバー上のフォルダーをgitクローンしてから編集してgit pushすることはできませんか? 今はsshを実行foo.comcd ~/bar.comてそこで待機し、ローカルマシンからgit pullいつでも実行できますが、それがあると便利ですgit push自動的に行われます)

更新:具体的な詳細とその方法を知っている場合にのみ、回答を投稿してください。あなたがグーグルして、ここに最初または2番目のグーグル結果を投稿するならば、それは役に立たないでしょう。

更新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

4

2 に答える 2

56
于 2011-04-24T09:25:05.977 に答える
1

次のpost-updateスクリプトを使用します(実行可能ビットを設定してください)。

#!/bin/sh
rm -rf ~/public_html/xxx
git-archive --format=tar --prefix=xxx master | tar x -C ~/public_html

それはそれを行いますが、サイトが利用できないときは短いウィンドウがあります。git pull自分で直接実行するとgit~/bar.comのディレクトリが公開さ.gitれるため、httpサーバーでブロックする.gitか、ディレクトリ階層の上位にあることを確認してください。何かのようなもの:

~
 \
  - repo
    \
     - .git
     - bar.com
       \
        - your content
于 2011-04-24T09:56:57.697 に答える