はプッシュを経由して左から右へ旅行する私のコードです:Git:ローカルワークフローをリモートワークフローに設定しました。リモートのファイルはどこにありますか?私は一言で言えば探しています何
local machine -> bare remote repository -> full remote repository
注:裸のレポがいっぱいレポと同じマシン上にあります。フルレポは、共有ホスト上の私のライブサイトでもあります。
これのためのすべての要件を実行した後、私の完全なリポジトリ内の私のサーバー上に作成されたファイルは絶対にありません。 gitはこれを行うのですか?私はgitに新しいので、多分私は何かを台無しにしました。私が行ったことは以下の通りです。ここで
は、コードを終了すると、ディレクトリにいる間、私は私のローカルマシン上で何をやったかです:
$ git init
$ git add .
$ git commit -m "Initial commit"
リモートマシン上で、ここで私は裸のレポのためにやったことだが:
$ git push exampleserver master
$ git remote add exampleserver ssh://[email protected]/~/www/example.git
$ git push exampleserver master
:ローカルマシンへ
$ mkdir -p $HOME/www/example.git
$ cd $HOME/www/example.git
$ git --bare init
戻る、私はこれをしませんでした
$ mkdir -p $HOME/www/example.com
$ cd example.com
$ git init
$ git remote add bare $HOME/www/example.git
$ cd $HOME/www/example.git/hooks/
裸のレポでhooksディレクトリに、私はと呼ばれる実行可能なシェルスクリプトを作成しながら「更新後:
戻るリモートマシンに、完全なレポ/ライブウェブサイトをセットアップするために、私はこれをやりました「と、それは次のようになります。
#!/bin/sh
cd $HOME/www/example.com
unset GIT_DIR
git pull bare master
exec git-update-server-info
を最後に、私のローカルマシン上でのコーディング終了時に、私は次の操作を行います。
$ git push exampleserver master
この戻り」すべてがアップツーです日付'。
私は "裸のリモート"ものは得られません。なぜあなたのローカルマシンに "裸のリモート"が必要ですか?サーバーにプッシュして、仲介者を取り除いてください。 – vocaro
実際にプッシュされたものがあれば 'post-update'フックが実行されると思います。変更をプッシュするとどうなりますか? –
@vocaro:決して*非裸のリポジトリにプッシュしないと、悪いことが起こります。 –