Gitサーバの設定メモ
最近、AtlassianからSourceTreeというWindows上で動く有望な無料のGitクライアントが発表された。ようやくWindows環境でもGitをまともに使い始められそうな機運が高まってきたので、それにあわせてサーバの設定などを簡単にまとめてみる。
一般的な情報は「Git に関する良記事 - あどけない話」から辿れる。
ここでは10人程度で共有するレポジトリを、ローカルのLinuxサーバ上に作成するためのミニマルな方法を模索する。手元にあったDebianサーバで試したが、必要なものはsshとgitだけなので、その他のディストリビューションでも設定方法は大差ないと思われる。
運用の基本方針
必要なパッケージ
※以下「%」はスーパーユーザ、「$」は一般ユーザのプロンプトのつもり
- ssh
- git
これだけ。Debianであれば
% aptitude install git % aptitude install ssh
とするだけ。
サーバ側の初期設定
サーバ上ではgitユーザがgitコマンドを叩くだけなので、実質的な設定は
の3ステップ
gitユーザの作成と設定
普通にadduserする。
% adduser git % : (テケテケ)
gitユーザはレポジトリ利用者全員で共有するので、念のためgitのレポジトリ操作以外のことは出来ないようにする。それを実現するためにgit-shellという特殊なシェルあり、それをgitユーザのログインシェルに設定する。
% chsh git % : (テケテケ) % : (どのシェルを使うか聞かれるので /usr/bin/git-shell を指定する)
運用方法
ユーザの追加のしかた
空のレポジトリに最初にpushするとき
$ cd <今までローカルで作業していたgitレポジトリ> $ git remote add origin git@<サーバ名>:/var/repos/MyGreatProject.git $ git push origin master
cloneのしかた(CVSでいうcheckoutね)
$ git clone git@<サーバ名>:/var/repos/MyGreatProject.git MyGreatProject
その他の小ネタ
リモートレポジトリを変更する
$ git remote set-url origin git@<新しいサーバ名>:/var/repos/MyGreatProject.git