「さくらのレンタルサーバ」を git で管理する
今回は簡単に覚え書きで(個々の事象には答えられないので質問しないでね)。 今回の目的は:
- scp でチマチマとアップするのに飽きてきたし,ローカルとリモートのディレクトリ環境が乖離しすぎてて管理しづらくなってきた。
- 最初は Subversion でやろうと思ってたけど,もたもたしてる間に git がメジャーになってしまった。これでいいか。
- リモートの「さくらのレンタルサーバ」と自宅の Windows 機の間で同期をとって管理したい。
- さくら側に bare repository を置いてもいいのだが(100GBもあるし),ちょうどいいことに codebreak; の private repository が使えるのでこれを利用する。
- 自宅機,レン鯖,ベアの3者で同期をとって運用する。
私がすっかり忘れ去っていて申し訳ないのだが, codebreak; では pull request を実装しているようだ。 GitHub と同じかどうかは(まだ試してないので)分からないが,「ひとりで練習」くらいには使えるだろう,と思ったりする。
で「さくらのレンタルサーバ」はスタンダードで100GBもあるくせに何にも入ってない(ssh は入ってる)。 だから git も入ってないし,入れるためには(ユーザ用に apt-get や yum みたいなパッケージ管理ツールもないので)自力で調達しないといけない。
おっと,その前に,レン鯖から更にリモート機へ ssh で入れるよう鍵を用意しないといけない。 それがすっかり忘れてるのよ。 ssh 自体は日常的に使ってるのにね。 なので以下を参照:
お次は git を拾ってくる。 git のパッケージは以下にある:
まぁ git-1.9.0.tar.gz でおっけ。
お次は以下のページを参考に git をインストールする。
上の記事では wget で git-core を取ってきているが,面倒なので自宅機でブラウザからダウンロードして, scp でレン鯖に上げた。 以降, git-1.9.0.tar.gz が $HOME/temp にあるという前提で:
$ cd $HOME/temp $ tar xvf git-1.9.0.tar.gz $ cd git-1.9.0 $ ./configure --enable-pthreads=-pthread --prefix=$HOME/local $ gmake install
これでgit が $HOME/local/bin にインストールされた。 ただし,この方法では https での pull/push が使えない。 使うためには curl ってのが要るらしい。
面倒なので私はパスした。 今回は必要ないし。
そういや http でリモートにつなぐと何度もパスワードを聞かれるのをなんとかなりませんか,という質問をよく見受けるのだが,その回答が「ssh を使いなさい」とかいう何の意味もないものだったりするところが多い。 ssh が使えないから https でつなごうとしてるのに。 ちなみにファイアウォールで守られてるイントラネットでは,(外からも内からも) ssh が使えないか,使える場合でも意図的にポートを変えている(で,社内ユーザには教えない)場合が多い。 で,パスワードを聞かれてウザい場合には,以下の2種類の方法がある(パスワードを平文で保存する方法と一時的にキャッシュする方法。後者が better)。
おっと,脱線してしまった。 で,さくらの場合は $HOME/www 以下が Web の公開範囲なので,ここを丸ごと repository として初期化する。 いや,その前に git の初期設定しておかないと。
$ git config --global user.name "Hoge" $ git config --global user.email hoge@hoge.sakura.ne.jp
ちゃんと設定できたかどうかは
$ cd $HOME/www $ git git init $ git add . $ git commit -m "initial commit" $ git remote add origin ssh://hoge@git.codebreak.com/hoge/hoge-www.git $ git push origin master
ちなみに codebreak; では README.md は見ないみたいなので(private repository しか作ってないからかもしれないけど),まぁどうでもいいです。
私は git remote add
コマンドでうっかり間違った URL を入れてハマった。
そゆときは
$ git remote set-url orign new-url
とすればよい。 これでひと仕事終わり。 あとはお好きなように。
そういえば,ネットに git の使い方解説ページは多いけど,みんな正常系しか書いてないんだよね。
まぁ異常系を挙げていったらキリがないからなんだろうけど。
でも私の場合 git remote add
で間違った時の取り消し方が分からなくてエラく往生したのよ。
みんなそゆことないのかな。
そうそう, git の使い方がなんとな~く分かるようになってきたら Gist の「gitの使い方」をリファレンスにするといいです。 本とか買わなくても大丈夫(と言って勧めるw)。