Gitとは

プログラムなどのソースをバージョン管理するシステムです。
ファイルやディレクトリに日付を入れるのも簡単なバージョン管理ですが、それの上位版と言えば良いでしょうか。
(なんと簡単な説明!)

使うだけならローカルでもOK

Gitは、ローカルだけで使うことができます。
Windowsは、Git for Windowsをインストールします。

Git for Windows

Macは、Xcode(Command Line Tools)をインストールすると一緒に入ります。
バージョンが古い場合は、Homebrewで入れると良いでしょう。

ホスティングサービス

ローカルだけでも使えるGitですが、メンバーと共有する際は、外部にデータ(リポジトリ)を置かなくてはいけません。

GitHubBitbucketなどのホスティングサービスにリポジトリを置くことで、メンバーと共有することができます。

プランによります、非公開のリポジトリは、有料になることが多いです。
私はメンバーとGitをしたいという理由だけだったので、予算がありませんでした。

  • GitHubは、非公開のリポジトリは有料になります。
  • Bitbucketは、5ユーザーまでなら無料のようです。

さくらのVPSでGitoliteをやる

というわけで、あまり活用されていないツクメモが置いてあるさくらのVPSでGitをやることにしました。
調べてみると、Gitoliteというものを使うと簡単にできるみたいなので、やってみました。

Gitoliteとは

共有したリポジトリやユーザーを管理するためのツールらしいです。
難しいことはよくわかりませんが、これを入れると簡単にメンバーと共有できるみたいですね。

SSHの鍵の作成

Gitoliteユーザー用にSSHの鍵を作成します。
Git for Windowsがインストールされていれば、Windowsでもコマンドでできるみたいです。
WinSCPのPuTTYでも大丈夫だと思います。
Macはコマンドで問題ないですね。

$ cd ~/.ssh
$ ssh-keygen -t rsa

設定しないとid_rsaという名前になりますが、分かりやすい名前にしましょう。
ここではadminという名前にし、パスワードを無しにします。

ファイルが2つ作成されます。
pubが付いたファイルをさくらのVPSにコピーしましょう。
FTPソフトでもSCPコマンドでも良いです。

$ scp -P 123456 ~/.ssh/admin.pub morisan@111.111.111.111:~/

Gitolite用のユーザーを作成

さくらのVPSにログインして、Gitolite用のユーザーを作成します。

SAKURA Internet [Virtual Private Server SERVICE]
$ sudo adduser git 

接続可能なユーザーを制限している場合は、AllowUsersに追加することを忘れないでください。

$ sudo vi /etc/ssh/sshd_config 
AllowUsers **** gituser
$ sudo /etc/init.d/sshd restart 

また、先ほどコピーしたadmin.pubgitユーザーに変更して、権限のあるディレクトリに入れておきます。

$ sudo chown git:git admin.pub 
$ sudo mv admin.pub /home/git/ 

Gitのアップデート

さくらのVPSにGitが入っているかもしれませんが、新しいバージョンを入れます。

$ sudo yum remove git
$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
$ wget https://www.kernel.org/pub/software/scm/git/git-2.6.3.tar.gz
$ tar -zxf git-2.6.3.tar.gz
$ cd git-2.6.3.tar.gz
$ sudo make prefix=/usr/local all
$ sudo make prefix=/usr/local install
$ git --version

作成したユーザーでGitoliteをインストール

$ su - git 
$ mkdir -p ~/bin 
$ git clone git://github.com/sitaramc/gitolite 
$ gitolite/install -ln ~/bin 
$ exec $SHELL -l 
$ gitolite setup -pk admin.pub 

ローカルに戻って、configに登録

~/.ssh/configに設定を登録すると接続が楽になります。

$ vi ~/.ssh/config
Host gitolite
    User git
    Hostname 111.111.111.111
    Port 123456
    Identityfile ~/.ssh/admin

gitolite-adminリポジトリを取得

gitoliteは、gitolite-adminリポジトリを更新することで、ユーザーとリポジトリの管理ができます。
conf/gitolite.confに書き込んで、pushすると追加や変更することができます。

$ git clone gitolite:gitolite-admin

SourceTree

Gitは、コマンドでも使えたほうが良いですが、見ためが分かりやすいSourceTreeというアプリケーションも併用すると良いです。

Free Mercurial and Git Client for Windows and Mac | Atlassian SourceTree

これでGitライフが楽しくなりそうです。
それでは、また!

参考サイト

sitaramc/gitolite · GitHub

install and setup

ユカイ、ツーカイ、カイハツ環境!(26):Git管理の神ツール「Gitolite」なら、ここまでできる! (1/2) – @IT

【Linux】 CentOSにGitolite を導入する – kzy52's blog

他多数