ukstudio.jpをgitで管理するようにしてみた

最近流行りのgitを使ってみようかなーってことでとりあえずukstudio.jpを全部gitで管理するようにした。

最終的に以下のような構成になった。

MacBookにgitをインストールする

MacBookにgitをインストールするのは簡単だった。MacPortsですんなり入った。

参考: MacPortsを使ってgitをインストールしてみた - Post-itみたいな

サーバにgitをインストールする

サーバはslicehostのCentOS5.1を使用。インストールされてるsvnが1.4なのでこちらは一旦remove。

$ yum remove subversion

gitはyumの標準リポジトリでは管理されてないので、外部リポジトリ(DAG)を登録してそこからインストールした。

$ wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-$0.3.6-1.el5.rf.i386.rpm
$ rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
$ yum install git

リポジトリを作る

とりあえずコミットする人の名前とメールアドレスを登録しないといけないらしいので登録。これはサーバの方も同じ。

$ git config --global user.email yuki.0w0[at]gmail.com
$ git config --global user.name YukiAkamatsu

次にローカルのファイル群をcommitする。

$ cd ~/ukstudio.jp
$ git init
$ git add .
$ git commit -m “first commit”

この状態だとまだローカル内での変更のみ。なので、この変更をサーバ側で受け取れるようにする。

# ukstudio.jpにログインした状態
[ukstudio.jp]$ mkdir /var/git/ukstudio.jp
[ukstudio.jp]$ cd /var/git/ukstudio.jp
[ukstudio.jp]$ git init-db

んで、またローカルに戻ってさっきcommitしたのをpushして反映させる。

$ git remote add ukstudio.jp ssh://ukstudio@ukstudio.jp/var/git/ukstudio.jp
$ git push ukstudio.jp ukstudio.jp master

最後に外部から見れるように配置する。

# ukstudio.jp
[ukstudio.jp]$ cd /var/www/vhost/
[ukstudio.jp]$ git clone /var/git/ukstudio.jp

これで/var/www/vhost/ukstudio.jpが作成されて、そこにずらーっとファイルができてるはず。とりあえずこれでukstudio.jpをgitで管理できるようになった。(と思う)

ローカルで変更を加えてみる

本当にうまく管理できているのか、適当なファイルを作って確かめてみたいと思う。

$ cd ~/ukstudio.jp
$ touch hoge.txt
$ git add hoge.txt
$ git commit -m "commit test"
$ git push ukstudio.jp master

#ukstudio.jp
[ukstudio.jp]$ cd ~/var/www/vhost/ukstudio.jp
[ukstudio.jp]$ git pull

これでhoge.txtがあれば、うまく管理できてることになると思う。

そんな感じで、とりあえずしばらくはgitを使ってみようかなーと思う。「git log -p」とやるとコミットログがdiff付きでみれて便利。

参考

Git ユーザマニュアル(1.5.3以降) Gitチュートリアル(1.5.1以降) Gitメモ せっかちな人のためのgit入門 バージョン管理をsubversionからgitに移行してみた

SSHについて補足

サーバへのSSH接続は鍵認証でやっています。秘密鍵を~/.ssh/id_dsa_ukstudio.jpで保存して、~/.ssh/configに以下のように書いています。

Host ukstudio.jp
IdentityFile ~/.ssh/id_dsa_ukstudio.jp
Protocol 2,1