m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

gitoliteを設定してみる

gitはまだ良くわかっていないけど

リポジトリは1箇所で管理したほうがやりやすそうなんで使ってみる

Webサービスのつくり方 ~「新しい」を生み出すための33のエッセイ (Software Design plus)

Webサービスのつくり方 ~「新しい」を生み出すための33のエッセイ (Software Design plus)

これにも書いてあったので

環境

クライアント環境

Windows8.1 64bit

gitoliteを置くところ

VMPlayer(CentOS 64bit)

やりかた

クライアントPCでssh用の鍵を作成する
$ ssh-keygen -t rsa -f git-admin
$

これでアクセス用の鍵ファイルを作成すると「git-admin」、「git-admin.pub」が作成されるので.ssh配下に移動する

.ssh/configにホスト別の設定を追加

この設定を行うことで接続する際に鍵ファイルを分けることができる。

Host git-local-host
     HostName 192.168.51.129
     User git
     Port 22
     IdentityFile C:/Users/m_shi_000/.ssh/git-admin
gitoliteをインストールするマシンで必要なライブラリをインストール
[root@localhost ~]# yum install perl-Time-HiRes -y
[root@localhost ~]#
gitユーザーの追加
[root@localhost ~]# useradd --shell /bin/bash --home /home/git git
[root@localhost ~]#
クライアントPCで作成した「git-admin.pub」を配置しておく(/home/git/git-admin.pub)
[root@localhost ~]# cd /home/git/
[root@localhost git]# ll
合計 4
-rw-r--r-- 1 root root 406  2月 26 20:20 2014 git-admin.pub
[root@localhost git]# chown git:git /home/git/git-admin.pub
[root@localhost git]#
gitユーザーでGitoliteをインストール
[git@localhost ~]$ mkdir ~/tmp && cd ~/tmp
[git@localhost tmp]$ git clone git://github.com/sitaramc/gitolite
Cloning into 'gitolite'...
remote: Reusing existing pack: 8358, done.
remote: Total 8358 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (8358/8358), 3.51 MiB | 708.00 KiB/s, done.
Resolving deltas: 100% (4710/4710), done.
Checking connectivity... done.
[git@localhost tmp]$ mkdir -p $HOME/bin
[git@localhost tmp]$ gitolite/install -to $HOME/bin
[git@localhost tmp]$ $HOME/bin/gitolite setup -pk ~/git-admin.pub
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: /home/git/.ssh missing; creating a new one
WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
[git@localhost tmp]$ rm -rf ~/tmp
[git@localhost tmp]$ rm -f ~/git-admin.pub
[git@localhost tmp]$

インストールは完了

使用

クライアントPCでcloneを実行
m_shi_000@LENOVO-WIN8-PC ~
$ git clone git-local-host:gitolite-admin
Cloning into 'gitolite-admin'...
remote: Counting objects: 6, done.
Receiving objects: 100% (6/6), done./4)   R
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
conf配下の「gitolite.conf」を編集してリポジトリ情報を追加

変更前

repo gitolite-admin
    RW+     =   git-admin

repo testing
    RW+     =   @all

repo gitolite-admin
    RW+     =   git-admin

repo testing
    RW+     =   @all

repo sample1
    RW+     =   git-admin

保存してコミット

$ cd ~/gitolite-admin/
$ git commit -am "add repo: sample1"
$ git push
gitoliteのあるマシンで確認
[git@localhost ~]$ ll repositories/
合計 12
drwx------ 8 git git 4096  2月 20 05:20 2014 gitolite-admin.git
drwx------ 7 git git 4096  2月 20 05:20 2014 sample1.git
drwx------ 7 git git 4096  2月 20 05:00 2014 testing.git
[git@localhost ~]$

こんな感じ

まとめ

セットアップがちょっと難しそうな感じだったけど以外と簡単にできた。
gitwebと連携して外部から参照できるように試してみる。