Gitリモートリポジトリ構築



Gitリモートリポジトリ構築

sshを経由してリポジトリの取得を行うGitサーバの構築手順を記載します。

「git://」でアクセス可能にするためには「git-daemon」を設定します。


sshサーバ構築手順

(サーバ操作)共用リポジトリを作成する。

gitの共用リポジトリを作る際は、「--bare」と「--share」オプションを指定します。

「--bare」はbareリポジトリを作成するという意味で、通常「.git」の下に作成される管理情報ファイルをカレントディレクトリに展開します。(リモートリポジトリではファイルは編集しないので、管理情報のみ存在させます。)

[server]$ mkdir repos.git
[server]$ cd repos.git
[server]$ git --bare init --share

(クライアント操作)ローカルにリポジトリを作成

ローカルリポジトリを作成します。

作業ディレクトリ(リポジトリに登録したいファイルが存在するディレクトリ)で下記コマンドを実行します。

[local]$ git init
[local]$ git add .
[local]$ git commit

(クライアント操作)ローカルリポジトリにリモートリポジトリを登録する。

ローカルリポジトリの反映先(push/pull)のデフォルト宛先を指定します。

この操作によって今後「git push」コマンドでURLを指定しなくても、指定済みのリモートリポジトリへの登録を行えるようになります。

[local]$ git remote add origin ssh://capm-network@capm-network.com/home/capm-network/repos.git
[local]$ git config branch.master.remote origin
[local]$ git config branch.master.merge refs/heads/master

実行内容は以下の通りです。


(クライアント操作)リモートリポジトリに送信する

ローカルリポジトリのコミット内容をリモートリポジトリに送信します。

初回の送信で失敗する場合には、URLを指定します。

[local]$ git push

デフォルトの送信先を設定していない場合には、送信先URLを指定します。

[local]$ git push ssh://capm-network@capm-network.com/home/capm-network/repos.git master

SSHトンネリングへの対応

ssh経由でコマンドを実行した場合、「.bashrc」等シェル設定ファイルが読み込まれないため、下記のようなエラーが発生します。

$ git push
bash: git-receive-pack: command not found
fatal: The remote end hung up unexpectedly

対処方法1

以下2点で対処できます。


対処方法2

sshトンネリングのPATHにシンボリックを張ります。

$ ln -s /home/capm-network/local/bin /home/capm-network/bin


リポジトリを取得する

(クライアント操作)リモートリポジトリを取得する

[local]$ git clone ssh://capm-network@capm-network.com/home/capm-network/repos.git


関連



スポンサード リンク