26
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Gerritの構築方法と使い方

Last updated at Posted at 2020-03-16

Gerritとは

Gerritとは無料のブラウザベースで使えるコードレビューツールです。主にソフトウェアのアジャイル開発を行う目的で利用されます。チームでソフトウェア開発を進める際に、ソースコードの変更をお互いにレビューし合い、レビューを通過したものだけを開発中のコードにマージすることができます。Gitを使って、開発しているソースコードのクローンや変更の提出などを行います。また、Jenkinsと連携させることで提出したコードの自動検証も可能です。Gerritの構築方法と簡単な使い方を紹介します。

Gerritの構築

Gerritはサーバー上で構築し、ブラウザからアクセスして使用します。構築の方法は公式ページにもいくつか書いてあります。その中でもDockerを使った構築方法が最も簡単でした。

sudo docker run -d -p 8080:8080 -p 29418:29418 gerritforge/gerrit-ubuntu15.04
sudo docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                              NAMES
bdaf2ac5560f        gerritforge/gerrit-ubuntu15.04   "/bin/sh -c '/var/ge…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp, 0.0.0.0:29418->29418/tcp   pedantic_ardinghelli

ブラウザで0.0.0.0:8080を開けるようになります。

キャプチャ.PNG

次に、sshでGerritに接続できるようにします。

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

catで出力された公開鍵をGerritのブラウザから登録します。
Account>Settings>SSH Public Keysの場所から登録します。
その後以下のコマンドで、ssh接続ができることを確認します。

ssh admin@localhost -p 29418
  ****    Welcome to Gerrit Code Review    ****

  Hi Administrator, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://admin@25680d00e8b3:29418/REPOSITORY_NAME.git

Connection to localhost closed.

次に、練習として、testプロジェクトを作成して修正をコミットする手順を示します。

ssh -p 29418 admin@localhost gerrit create-project --empty-commit test

testというプロジェクトが作成されました。

キャプチャ1.PNG

testというプロジェクトに変更点を提出していきます。

git clone ssh://admin@localhost:29418/test
cd test

scp -p -P 29418 admin@localhost:hooks/commit-msg .git/hooks/

echo 'test' > test.txt
git add test.txt
git commit -m "test commit"
git push ssh://admin@localhost:29418/test  HEAD:refs/for/master

3行目のscp ・・・というコマンドは、コミットに自動でIDを付与するために必要です。IDが付与されていないと変更点の提出ができないことがあります。
下の画像の通り、変更点が提出されました。

キャプチャ2.PNG

Gerritで変更点の提出までの流れ

現在開発中のリポジトリのクローンと、Gerritへの変更点の提出までの手順を書きます。

git clone ssh://admin@localhost:29418/test
cd test
git checkout -b myBranch

ソースコードに変更を加えます。JIRAとGerritの連携機能を使っているのであればJIRAの課題管理IDをコミットメッセージに記載します。

git add .
git commit -m "[JIRA issue ID] commit message"

最後に、Gerrit上のリモートリポジトリと同期し、git reviewによりソースコードの修正を提出します。

git checkout master
git pull --ff-only origin master
git checkout myBranch
git rebase -i master
git review

提出内容の修正方法

提出した変更内容を修正したい場合の手順を示します。

git review -d [変更番号]
git checkout review/[提出者名]/[ブランチ名]

ソースコードを修正します。

git add .
git commit --amend
git review
26
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?