「さくらのレンタルサーバ」を git で管理する

no extension

今回は簡単に覚え書きで(個々の事象には答えられないので質問しないでね)。 今回の目的は:

  1. scp でチマチマとアップするのに飽きてきたし,ローカルとリモートのディレクトリ環境が乖離しすぎてて管理しづらくなってきた。
  2. 最初は Subversion でやろうと思ってたけど,もたもたしてる間に git がメジャーになってしまった。これでいいか。
  3. リモートの「さくらのレンタルサーバ」と自宅の Windows 機の間で同期をとって管理したい。
  4. さくら側に bare repository を置いてもいいのだが(100GBもあるし),ちょうどいいことに codebreak; の private repository が使えるのでこれを利用する。
  5. 自宅機,レン鯖,ベアの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

ちゃんと設定できたかどうかは git config --list で見れる。 さて,それでは。

$ 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)。

photo
入門git
Travis Swicegood でびあんぐる
オーム社 2009-08-12
評価

Gitポケットリファレンス Gitによるバージョン管理 GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus) チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus) Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

by G-Tools , 2014/06/10