個人サーバでのgitリポジトリ管理(ポート指定)

既存の 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://user@git.example.com:2222/opt/git

この時点で、同じサーバーに SSH でアクセスできてかつ /opt/git ディレクトリへの読み込みアクセス権限がある人なら、次のようにしてこのリポジトリをクローンできるようになります。

$ git clone ssh://user@git.example.com:2222/opt/git/my_project.git

ユーザーが SSH でアクセスでき、かつ /opt/git/my_project.git ディレクトリへの書き込みアクセス権限があれば、すでにプッシュもできる状態になっています。

git init コマンドで --shared オプションを指定すると、リポジトリに対するグループ書き込みパーミッションを自動的に追加することができます。

$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared