Gitでバージョン管理(さくらのVPS設定6)

チーム開発ではもちろん、1人でシステム開発する時にもバージョン管理は必須ですね。ツールはGitを使います。

GitはGitHubとかBacklogとか既存のサービスで使えるのがあるけど、せっかくなので自前で構築します。

Gitインストール

CentOS6.5にはGit1.7.1という古いバージョンが入っています。リポジトリにも古いのしか無いので、自分でコンパイルします。

まずは既存バージョンをアンインストール。

# yum remove git

必要なパッケージを先にインストール。

# yum install zlib-devel perl-devel gettext

Gitをダウンロードしてコンパイル。現在の最新バージョンは1.9.0です。

# wget http://git-core.googlecode.com/files/git-1.9.0.tar.gz
# tar zxvf git-1.9.0.tar.gz
# cd git-1.9.0
# ./configure
# make
# make install

正常にインストールできてるか確認します。

# git --version
git version 1.9.0

Gitoliteインストール

Gitoliteはユーザやリポジトリを管理をしてくれる便利ツールです。

まずはGitolite用のユーザを作成します。

# useradd gitolite

そしたらgitoliteユーザでログインして、鍵用のディレクトリを作成しておきます。

# su gitolite
(gitolite)$ cd ~
(gitolite)$ mkdir .ssh -m 0700
(gitolite)$ exit

rootでユーザ管理するために、rootの鍵を作成してgitoliteのディレクトリにコピーします。

# mkdir ~/.ssh -m 0700
# ssh-keygen -t rsa (選択肢は全部エンターでOK)
# cp ~/.ssh/id_rsa.pub /home/gitolite/root.pub
# chmod 666 /home/gitolite/root.pub

GitoliteをGitHubから取得してインストールします。

# su gitolite
(gitolite)$ mkdir ~/tmp
(gitolite)$ cd ~/tmp
(gitolite)$ git clone git://github.com/sitaramc/gitolite
(gitolite)$ mkdir -p ~/bin
(gitolite)$ gitolite/install -to ~/bin

rootの鍵をgitoliteに設定します。

(gitolite)$ cd ~
(gitolite)$ ./bin/gitolite setup -pk root.pub

不要なファイルを削除します。

(gitolite)$ rm -f ~/root.pub
(gitolite)$ rm -rf ~/tmp
(gitolite)$ exit

ローカルに出来たgitolite-adminというリポジトリでユーザとかの管理が出来るようになります。

# cd ~
# git clone gitolite@localhost:gitolite-admin

上記のコマンドでちゃんとcloneできたら設定完了です。

ユーザ追加

gitolite-adminリポジトリにアクセスしたいユーザの公開鍵を追加します。この鍵は自分のPCで作成したものです。作成方法は省略。

# cd ~/gitolite-admin
# vi keydir/kuro.pub

kuro.pubにユーザkuroの公開鍵を追加しました。ファイル内では末尾に改行が入ってるとうまくいきません。気付かず苦労した……

変更を反映させます。

# git add keydir
# git commit -m 'add users'
# git push

これでkuroの秘密鍵を持つユーザがGitにアクセスできるようになります。

リポジトリ作成

ユーザと同じくgitolite-adminでリポジトリを追加します。

# cd ~/gitolite-admin
# vi conf/gitolite.conf

gitolite.confには例えば以下のように記述します。

repo unity
    RW+     =   kuro

変更を反映させます。

# git add conf
# git commit -m 'add projects'
# git push

これでkuroだけがアクセスできるunityリポジトリが作成されました。

アクセスする

ユーザとリポジトリの設定が完了したので、以下のコマンドでアクセス出来るようになりました。

git clone ssh://gitolite@(サーバのIPアドレス)/unity

失敗する場合はsshの設定なども確認してみてください。

コメントを残す

メールアドレスが公開されることはありません。