このwordpressも動かしてるServersMan@VPSをgitサーバ化したのでその方法をメモ書き
svnとgitで迷いましたが、svnにすると、コミットの度にサーバにアクセスしなければならないので、若干面倒になってしまうのと、単純に分散リポジトリ管理を再勉強しようと思った為です。
また、githubを使わない理由としては、privateなリポジトリを無料では作成できないため、個人的な、外部公開しづらいソースを管理するために使おうと思ったためです。
なので、逆にpublicなものはgithubも使っていくつもりなので、基本的にこっちで作成するリポジトリは個人+αでprivateに使う程度を前提に考えて構築しています。
なお、行った環境としては、ServersMan@VPSをサーバ(リモートリポジトリ)にして、ubuntuマシンをクライアントとしています。
クライアント上で細かいコミットをローカルで、1区切りごとにサーバサイドにpushするという流れで行うつもりです。
リポジトリ追加+gitインストール
ServersMan@VPSのデフォルトであるCentOS5では、標準リポジトリ内のgitが古いので、rpmforgeのリポジトリを追加してそちらからインストールします。
# yum install yum-priorities
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
# yum update
# yum install git
git初期設定
サーバ(VPS)サイド
VPS上にリポジトリを管理行うためのディレクトリを作成、gitの管理下に設定します。
# mkdir /var/git/myapp.git
# cd /var/git/myapp.git/
# git --bare init
クライアント(ubuntu)サイド
こちらにもgitが入っていないので、インストールします。
$ sudo apt-get install git
コミットテスト
実際にうまくコミットできるかのテストを行います。
まず、gitのリモートサーバリポジトリの指定設定を行います。
$ git remote add server ssh://[email protected]/var/git/myapp.git
その後、クライアント側でローカルリポジトリ作成→コミット後、サーバ側にpushします。
今回は、touchコマンドでテストファイルを作った後、コミット→pushします。
$ cd git
$ touch sample
$ git add sample
$ git commit -m "sample file add"
$ git push server master
この時、先ほどsshで設定したユーザにディレクトリの権限がないと、エラーで弾かれます。
私は最初に一回、やってしまいました。
$ git push server master
fatal: '/var/git/myapp.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
別端末からのリポジトリの取得
今回設定した端末以外に現在のリポジトリをコピーして、利用する際の設定を行います。なお、この別端末ではgitはすでにインストール済みの状態から作業を行います。
$ mkdir myapp
$ git clone [email protected]/var/git/myapp.git myapp
これでディレクトリmyappにリポジトリのコピーが作成され、編集可能となりました。
あとは、コミット時は、テストコミットと同様に、別の箇所で操作した内容を反省させるには、git pullで取得します。
$ git pull server master
まとめ(?)
VPSを借りた時点で、リポジトリ管理に使おうとは考えていたのですが、wordpressの方やらその他のことでコードを書くことも少なかったので、放置気味でしたがとりあえずリポジトリだけでもと思い、今回作成して覚え書き程度に作成内容をメモしました。
とりあえず、今いくつか作りたい物の構想はあるので、それのコード管理に使いつつ、モノ自体を作成していきたいと思ってます。