さくらVPSにBitnamiでRedmineをインストール【その3 Git設定編 完結】

前回の記事でRedmineが使用できるようになりました。今回はGitのサーバー設定を行い、Redmineからリポジトリを参照できるようにしましょう。

Gitの設定

Gitのパスを通す

ここまでの手順通りにインストールを行えば、Gitは「/opt/redmine/git/bin」にインストールされています。このままではGitコマンドを入力しても「コマンドが見つかりません」と表示され実行できないので、Gitのインストールディレクトリにパスを通します。
まずは現在のパスを確認します。

# echo $PATH

表示される結果に「/opt/redmine/git/bin」がなければパスが通っていません。次のコマンドでパスを追加します。

# export PATH=$PATH:/opt/redmine/git/bin

上記のパスの追加は一時的なもので、OSを再起動するとパスが外れてしまいます。OS起動時に自動でパスが追加されるように設定します。
テキストエディタで /etc/profile を開きます。
※テキストエディタは好きなものを使用してください。

# nano /etc/profile

開いたファイルの最終行に下記を追加します。

export PATH=$PATH:/opt/redmine/git/bin

シンボリックリンクの作成

このままの設定では、Gitクライアントからリモートリポジトリへpushした際に、「bash: git-receive-pack: コマンドが見つかりません」と表示されてしまいます。これはGitクライアントがSSH接続した際に、上記の「export」コマンドが実行されずに、pushやcloneに必要な「git-receive-pack」と「git-upload-pack」を見つけられないためです。
これらのファイルへのシンボリックリンクを作成しておきます。

# ln -s /opt/redmine/git/bin/git-receive-pack /usr/local/bin/git-receive-pack
# ln -s /opt/redmine/git/bin/git-upload-pack /usr/local/bin/git-upload-pack

ユーザーの作成

GitのリモートリポジトリへはSSHを使用して接続するので、そのためのグループとユーザーを作成します。グループ名、ユーザー名は適宜置き換えてください。
まずはグループを作成します。

# groupadd gitgroup

続いてユーザーを作成し、先ほど作成したグループへ追加します。

# useradd -g gitgroup gituser

作成したユーザーのパスワードを設定します。

# passwd gituser

リモートリポジトリの作成

リポジトリ用のディレクトリを作成します。このリポジトリはプロジェクトチームの皆が使うので、直接コミットなどができないように「ベアリポジトリ」として運用します。Gitではベアリポジトリ用のディレクトリ名には「.git」を付けるのが慣例です。
中間ディレクトリも含めて、作成するディレクトリ名は適宜置き換えてください。

# mkdir -p /var/git-repos/test.git

ディレクトリの所有者を、先ほど作成したユーザーに変更します。

# cd /var/git-repos
# chown gituser test.git

リポジトリの作成はGit用のユーザーで行うため、ユーザーを切り替えます。

# su gituser

ベアリポジトリを作成します。

$ cd test.git
$ git init --bare --shared=true

クライアントからリモートリポジトリにpushする

これ以降の手順はWindowsのクライアントPCで行います。Gitアプリケーションをインストールしていない場合はGit for Windowsからインストールを行ってください。

バージョン管理は「誰が何のアクションを行ったか」を追跡するので、Gitクライアントには少なくともユーザー名とメールアドレスを設定する必要があります。設定していない場合はここで設定しておきましょう。まずは現在の設定を確認します。
スタートメニューから「Git Bash」を起動してコマンドを入力してください。

$ git config --list

表示されるConfigのリストに「user.name」と「user.email」の項目がない場合は、次のコマンドで追加します。

$ git config --global user.name "任意のユーザー名"
$ git config --global user.email "任意のメールアドレス"

これでクライアントの準備が整いました。さっそくローカルリポジトリを作成してリモートリポジトリへpushしてみましょう。
まずはクライアントPCの任意の場所にフォルダを作成します。
※説明では「Git Bash」を使用してフォルダやファイルの作成を行いますが、Windowsのエクスプローラーを使用しても問題ありません。

$ mkdir test

作成したディレクトリへ移動します。

& cd test

リポジトリを作成します。

$ git init

作成したローカルリポジトリに、リモートリポジトリの設定を追加します。
「gituser」の部分は上記の「Gitの設定」で作成したSSH接続用のユーザーを指定します。

$ git remote add origin ssh://gituser@<サーバーのIPアドレス>/var/git-repos/test.git

テスト用のファイルを作成します。

$ touch sample

ローカルリポジトリへ追加しコミットします。

$ git add sample
$ git commit -m "add sample file"

リモートリポジトリへpushします。
途中にSSHの警告「Are you sure you want to continue connecting (yes/no)?」が表示されるので「yes」と入力してください。

$ git push origin master

パスワードを聞かれるので、SSH接続用ユーザーのパスワードを入力します。

gituser@<サーバーのIPアドレス>'s password:

ここで「bash: git-receive-pack: コマンドが見つかりません」が表示される場合は、上記のシンボリックリンクの作成を行ってください。

RedmineにGitの設定を行う

Redmineにブラウザでアクセスし「管理」メニューの「設定」から「リポジトリ」タブを選択します。
「使用するバージョン管理システム」で「Git」を選択し、「リポジトリ管理用のWebサービスを有効にする」にチェックを付け、「キーの生成」をクリックしAPIキーを作成します。

新しいプロジェクトを作成します。

プロジェクトの「設定」から「リポジトリ」タブを選択し「新しいリポジトリ」をクリックします。
「識別子」に任意の文字列を入力、「リポジトリのパス」にリモートリポジトリのパス(この例では/var/git-repos/test.git)を入力し、「ファイルとディレクトリの最新コミットを表示する」にチェックを付けます。

プロジェクトの「リポジトリ」を表示して、Gitクライアントからpushしたファイルが表示されることを確認します。

以上でRedmineとGitを連携させることができました。各種開発ツールにGitの設定を行うことで、チケットとソースのバージョン管理を行うことができます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. 王袋 玉 より:

    同じことしようとしてたので、参考にさせていただきました!
    次の記事も楽しみにしています(^^♪

  2. スナフキン より:

    「長い旅行に必要なのは大きなカバンじゃなく、口ずさめる一つの歌さ」