既存の Git リポジトリからベアリポジトリを作成し、メンバーが SSH でアクセスできるサーバーにそれを配置。これで、そのプロジェクトでの共同作業ができるようになります。
ペアリポジトリの作成
Git サーバーを立ち上げるには、既存のリポジトリをエクスポートして新たなベアリポジトリ (作業ディレクトリを持たないリポジトリ) を作らなければなりません。
リポジトリをクローンして新たにベアリポジトリを作成するには、clone コマンドでオプション --bare を指定します。
慣例により、ベアリポジトリのディレクトリ名の最後は .git とすることになっています。
$ git clone --bare my_project my_project.git
Cloning into bare repository ‘my_project.git’…
done.
ベアリポジトリのサーバー上への設置
ベアリポジトリを取得できたので、あとはそれをサーバー上においてプロトコルを準備するだけです。 ここでは、 git.example.com というサーバーがあってそこに SSH でアクセスできるものと仮定します。
Git リポジトリはサーバー上の /opt/git ディレクトリに置くことにします。 /opt/git ディレクトリが作成済みであれば、新しいリポジトリを作成するには、ベアリポジトリを次のようにコピーします。sshのポート番号を指定する場合(sshデフォルトポート番号22を使用する場合は2222は不要)です。
$ scp -r my_project.git ssh://[email protected]:2222/opt/git
この時点で、同じサーバーに SSH でアクセスできてかつ /opt/git ディレクトリへの読み込みアクセス権限がある人なら、次のようにしてこのリポジトリをクローンできるようになります。
$ git clone ssh://[email protected]:2222/opt/git/my_project.git
ユーザーが SSH でアクセスでき、かつ /opt/git/my_project.git ディレクトリへの書き込みアクセス権限があれば、すでにプッシュもできる状態になっています。
git init コマンドで --shared オプションを指定すると、リポジトリに対するグループ書き込みパーミッションを自動的に追加することができます。
$ ssh [email protected]
$ cd /opt/git/my_project.git
$ git init --bare --shared