Gerrit-クイックガイド
Gerritは、Gitと統合され、Gitバージョン管理システム上に構築されたWebベースのコードレビューツールです(開発者が協力して作業の履歴を維持するのに役立ちます)。コードレビューが完了したら、Gitリポジトリへの変更をマージできます。
ゲリットは、によって開発されたショーン・ピアースのJava、サーブレット、GWT(Googleウェブツールキット)で書かれているGoogleの。Gerritの安定版リリースは2.12.2で、2016年3月11日に公開され、Apache Licensev2でライセンスされています。
Gerritを使用する理由
以下は、Gerritを使用する必要がある特定の理由です。
Gerritを使用すると、ソースコードでエラーを簡単に見つけることができます。
通常のGitクライアントがある場合は、Gerritを使用できます。Gerritクライアントをインストールする必要はありません。
Gerritは、開発者とgitリポジトリの間の中間として使用できます。
Gerritの特徴
Gerritは、無料のオープンソースのGitバージョン管理システムです。
Gerritのユーザーインターフェースは、Google WebToolkit上に形成されています。
これは、すべてのコミットを確認するための軽量フレームワークです。
Gerritはリポジトリとして機能し、コードをプッシュしてコミットのレビューを作成できるようにします。
Gerritの利点
Gerritは、コードレビュー用のGitリポジトリとWebフロントエンドのアクセス制御を提供します。
追加のコマンドラインツールを使用せずにコードをプッシュできます。
Gerritは、リポジトリレベルからブランチレベルまでの権限を許可または拒否できます。
GerritはEclipseでサポートされています。
Gerritのデメリット
コードコミットを確認、検証、再送信すると、市場投入までの時間が遅くなります。
GerritはGitでのみ機能します。
Gerritは低速であり、変更がリストされているソート順を変更することはできません。
Gerritにリポジトリを追加するには、管理者権限が必要です。
Gerritを使用する前に、Gitをインストールし、いくつかの基本的な構成変更を実行する必要があります。以下は、さまざまなプラットフォームにGitクライアントをインストールする手順です。
Gitクライアントのインストール
Linux
ソフトウェアパッケージ管理ツールを使用して、GitをLinuxにインストールできます。たとえば、Fedoraを使用している場合は、次のように使用できます。
sudo yum install git
UbuntuなどのDebianベースのディストリビューションを使用している場合は、次のコマンドを使用します-
sudo apt-get install git
ウィンドウズ
GitをWindowsにインストールするには、GitのWebサイトからダウンロードします。ちょうどに行くmsysgit.github.ioリンクとダウンロードボタンをクリックしてください。
マック
Gitは、次のコマンドを使用してMacにインストールできます-
brew install git
Gitをインストールする別の方法は、GitWebサイトからダウンロードすることです。MacリンクのGitインストールに移動するだけで、Git forMacプラットフォームがインストールされます。
Gitをインストールしたら、構成変数をカスタマイズして個人情報を追加する必要があります。-lオプション(このオプションは現在の構成を提供します)とともにgit configと呼ばれるGitツールを使用して、構成変数を取得および設定できます。
git config -l
上記のコマンドを実行すると、次の画像に示すような構成変数が取得されます。

コマンドを再度使用すると、カスタマイズした情報をいつでも変更できます。次の章では、gitconfigコマンドを使用してユーザー名とユーザーEメールを構成する方法を学習します。
名前と電子メール変数を設定することで、各コミットを追跡できます。name変数は名前を指定し、email変数はGitコミットに関連付けられた電子メールアドレスを識別します。これらは、次のコマンドを使用して設定できます-
git config --global user.email "[email protected]"
git config --global user.name "your_name"
上記のコマンドを実行すると、次の画像に示すようなユーザー名とメールアドレスが表示されます。

SSHは、Secure Shellの略で、リモートコンピュータからネットワークサービスに安全にアクセスするために使用されるSecure SocketShellプロトコルの略です。SSHキーを設定して、コンピューターとGerritの間に信頼性の高い接続を提供できます。
Git Bashで次のコマンドを使用して、ローカルコンピューター上の既存のSSHキーを確認できます-
$ ls ~/.ssh
エンターボタンをクリックすると、次の画像に示すように既存のSSHキーが表示されます-

既存のSSHキーが見つからない場合は、新しいSSHキーを作成する必要があります。
新しいSSHキーの生成
Git Bashで次のコマンドを使用して、認証用の新しいSSHキーを生成できます-
$ ssh-keygen -t rsa -C "[email protected]"
SSHキーを既にお持ちの場合は、上書きされるため、新しいキーを生成しないでください。ssh-keygenコマンドは、GitをGitBashとともにインストールした場合にのみ使用できます。
上記のコマンドを実行すると、〜/ .sshディレクトリに2つのファイルが作成されます。
~/.ssh/id_rsa −秘密鍵または識別鍵です。
~/.ssh/id_rsa.pub −公共テレビです。
さらに説明するさまざまなプラットフォームのssh-agentにSSHキーを追加できます。
Linux
Linuxシステムで次のコマンドを使用してSSHキーを追加します
cat /home/<local-user>/.ssh/id_rsa.pub
ウィンドウズ
GIT GUIを開き、 Help → Show SSH Key 次の画像に示すように。

次に、をクリックします Copy To Clipboard ボタンをクリックして、キーをクリップボードにコピーします。

マック
Mac OS Xでは、次のコマンドを使用してid_rsa.pubの内容をクリップボードにコピーできます。
$ pbcopy < ~/.ssh/id_rsa.pub
SSHキーは、次の手順を使用してGerritアカウントに追加できます-
Step 1−まず、wmflabs.orgサービスでアカウントを作成します。

Step 2−次に、GerritのWebインターフェイスにサインインします。

Step 3 −次に、右上隅でユーザー名をクリックし、[設定]オプションを選択します。
ここでは、Gerritを利用するためにJohnという名前のアカウントを作成しました
Step 4 −左側のメニューの[SSH公開鍵]オプションをクリックして、フィールドにSSH公開鍵を貼り付けます。

次のコマンドを使用して、SSHキーをGitに追加できます-
Step 1 − Git Bashを開き、次のコマンドを使用してssh-agentを取得します。
$ eval 'ssh-agent'
Step 2 −次に、次のコマンドを使用してSSHキーをssh-agentに追加します
$ ssh-add ~/.ssh/id_rsa
Step 3 −ここで、次のコマンドを使用してsshを実行します。これは、初めてログを記録するときに使用されるSSHフィンガープリントと一致します。
$ ssh -p 29418 <user_name>@gerrit.wikimedia.org

上のスクリーンショットでは、次のことがわかります。 xyz123 はインスタンスシェルアカウント名であり、Gerritアカウントの作成時に使用されます。 Abc123 Gerritアカウントのユーザー名です。
Gitを使用して、で編成されたプロジェクトのソースコードとともにサンプルをダウンロードできます。 gerrit.wikimedia.org 次のGitBashコマンドを使用します。
$ git clone
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples
Gitのクローンコマンドは、新しいディレクトリにディレクトリを複製し、つまり、既存のリポジトリのコピーを取得します。上記のコマンドを実行すると、次のようなスクリーンショットが表示されます。

上記のコマンドは、「examples」リポジトリのクローンを作成し、そのリポジトリからオブジェクトやファイルなどを受け取り、ローカルブランチに保存します。
この章で説明するように、さまざまなプラットフォームにgit-reviewをインストールすることで、Gerritを操作できます。
ウィンドウズ
Windowsでは、次の手順にリストされているようにgit-reviewをインストールできます。
Step 1−最初にPythonをインストールしてgit-reviewをインストールします。

Step 2 − Pythonのインストールは、他のディレクトリではなく、デフォルトのディレクトリ(C:\ Python27など)に保持します。
Step 3 −次に、パスを次のように使用して、Pythonスクリプトディレクトリの環境変数を設定します。 C:\Python27\;C:\Python27\Scripts\;
git_review_install
Step 4−バージョン2.7では、Pythonはpipを自動的にインストールします。古いバージョンのPython2.7の場合、このリンクで説明されているようにpipをインストールできます。
Step 5 − open Git Bashを実行し、次のコマンドを使用してgit-reviewをインストールします。
$ pip install git-review
Linux
Linuxでは、次の手順で説明するようにgit-reviewをインストールできます-
Step 1Linuxプラットフォームのユーザーは、共有ホストへのルートアクセス権を持っていません。したがって、rootアクセスがなくても、次のコマンドを使用してgit-reviewをユーザーディレクトリにローカルにインストールできます。
virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21
Step 2 − 2つの方法を使用して、ローカルバイナリへのパスを拡張できます。
PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH
Step 3 −次に、次のコマンドを使用して、Gerritでの作業を設定します。
git review -s
or
~/virtualenv/bin/git-review -s
Step 4 −ルートアクセスでは、次のコマンドを使用してgit-reviewをインストールできます。
sudo apt-get install git-review
Step 5− Pythonのインストール後にapt-getがない場合は、次のコマンドを使用します。
$ sudo easy_install pip
$ sudo pip install git-review==1.21
Step 6 − Gerritを操作するには、次のコマンドを実行します。
git review -s
Mac OS X
Macでは、次の手順を使用してgit-reviewをインストールできます。
Step 1−このリンクからHomebrewをインストールします。
Step 2 −次に、次のコマンドを使用してgit-reviewをインストールします。
brew install git-review
Gerritは、他のホストからコードを抽出し、コードに変更をプッシュし、レビューのためにコードを送信するなど、Gitバージョン管理システム上に構築されています。Gitのデフォルトのリモート名はoriginであり、これを使用するようにgit-reviewに指示します。次のコマンドを使用して、「origin」に名前を付けます。
$ git config --global gitreview.remote origin
Git-reviewを使用して、レビューのためにgitブランチをGerritに送信できます。プロジェクトディレクトリで次のコマンドを使用して、gitreviewを設定できます。
$ git review -s
Git-reviewは、Gitクローンの構成、Gerritへのブランチの送信、既存のファイルのフェッチなどのコマンドラインツールとして使用できます。Git-reviewは、デフォルトでGerritを操作するためのリモートの名前付きgerritを検索します。
git-reviewがGerritリモートを見つけると、ブランチをに送信します HEAD:refs/for/masterリモートの場所で、Gerritリモートアクセスがない場合、git-reviewはを探します。gitreview リポジトリのルートにあるファイルと、gerritのリモート情報。
Git-reviewは以下を内部的に処理します-
ブランチを送信するためにリモートリポジトリが機能するかどうかをチェックします。
Gerritリモートアクセスがない場合は、ユーザー名を要求され、リポジトリへのアクセスが再試行されます。
Gerritを指すgerritと呼ばれるリモートアクセスを作成します。
commit-msgフックをインストールします。
次のコマンドを使用して、マスターブランチを最新の状態にすることができます。git-pullコマンドは、別のローカルブランチからフェッチするか、別のリポジトリと統合します。
git pull origin master

このコマンドは、変更を元のリモート(フェッチ元のリモートのURL)、マスターブランチからプルし、変更をローカルのチェックアウトされたブランチにマージします。
オリジンマスターは、オリジンから最後にプルされたもののキャッシュされたコピーです。
Gitプルは、git fetch(リモートリポジトリから新しいコミットをフェッチする)とgit merge(新しいコミットをローカルブランチに統合する)の組み合わせです。
Git pullは、デフォルトでローカルブランチをリモートブランチとマージします。
次のコマンドを使用して、ローカルマシンにブランチを作成できます。
$ git checkout -b name_of_branch origin/master
上記のコマンドは、次のスクリーンショットに示すように新しいブランチを作成します。

ここでは、 branch123新しいローカルブランチとして。次のコマンドを使用して、「マスター」から新しいブランチを表示できます。
$ git branch
上記のコマンドは、次のスクリーンショットに示すような結果を生成します。

Gitチェックアウトはブランチ間を移動し、作業ディレクトリ内のファイルを更新し、そのブランチでのコミットを記録するようにGitに通知します。
ローカルファイルシステムのコードを変更する場合、次のコマンドを使用してディレクトリ内の変更を確認できます。
$ git diff
プロジェクトディレクトリで、というファイルのいくつかの変更を変更します Example/Example.hooks.php上記のコマンドを実行します。次のスクリーンショットに示すような結果が得られます。

次のコマンドを使用して、ファイルまたはディレクトリに加えられた変更を確認できます。
$ git status

上記のコマンドを使用すると、ステージングされた変更、ステージングされていない変更、Gitによって追跡されていないファイルを確認できます。
次に、次のコマンドを使用して、作業ディレクトリに変更を追加し、次のコミットでファイルを更新できます。
$ git add Example/Example.hooks.php
ファイルを追加した後、次のスクリーンショットに示すように、もう一度git statusコマンドを実行して、ステージング領域に追加された変更を確認します。

次のコマンドを使用して、インデックスと最後のコミットの違い、およびステージングされたコンテンツを確認できます。
$ git diff --cached

次のコマンドを使用して、ローカルリポジトリからリモートディレクトリに変更をプッシュできます。
$ git commit
上記のコマンドを実行すると、変更のコミットメッセージを追加するように求められます。このメッセージは、コミットを他のリポジトリにプッシュすると、他の人に表示されます。

コミットメッセージを追加し、git commitとしてコマンドを再実行すると、次のスクリーンショットに示すようにコミットメッセージが表示されます。

それらをマスターにマージする前に、Gerritの変更を確認する必要があります。マスターで発生した変更を同期できます。作業中のブランチ内で次のコマンドを使用します。
$ git pull --rebase origin master
上記のコマンドは、リモートブランチから変更またはコミットをフェッチし、マスターの上にコミットをリベースします。
変更が完了し、コミットのベースを変更したら、変更セットをGerritにプッシュして確認できます。
Git pull --rebaseは、変更が個別のブランチに値しない場合によく使用されます。
Gitプルは、GitフェッチとGitマージの組み合わせです。ここで、git pull --rebaseは、gitfetchとgitrebaseの組み合わせです。
まず、次のスクリーンショットに示すように、コマンドをgit pull originmasterとして実行します。

次のスクリーンショットに示すように、コマンドをgit rebase masterとして使用して、コミットをリベースします。

を使用して、レビューのためにパッチを送信できます。 git-reviewコマンド。変更セットは、を実行することでGerritにプッシュできます。git review -R 次のスクリーンショットに示すようにコマンド。

ザ・ -R オプションは、Gerritにgitの変更を送信する前にリベースを完了しないようにgit-reviewに通知します。
次のコマンドを使用して、マスターではなく他のブランチにコードを送信できます。
git review name_of_branch
次のコマンドを使用して、コードを別のリモコンに送信することもできます。
git review -r name_of_remote
このリンクをクリックすると、Gerritダッシュボードで変更を確認できます。

変更された作成者名のリンクをクリックすると、次のスクリーンショットが表示されます。

次のスクリーンショットに示すように、拡散リンクをクリックして、変更されたファイルとその他の詳細を確認します。

次の手順に示すように、Gerritアカウントにログインした後、Webインターフェイスを介してプロジェクトを編集できます。
Step 1−このリンクをクリックして、Gerritダッシュボードに移動します。次のスクリーンショットが表示されます。

Step 2 −次に、 mediawiki/extensions/examplesプロジェクト列で指定されたリンク。
Step 3−次のスクリーンショットに示すように、ツールバーの[一般]リンクをクリックします。

Step 4− [一般]リンクを開くと、次のようなスクリーンショットが表示されます。

Step 5− [変更の作成]ボタンをクリックすると、次のスクリーンショットに示すような詳細を示すポップアップウィンドウが開きます。

Step 6−情報を入力し、[作成]ボタンをクリックします。
変更を作成すると、次のスクリーンショットに示すような情報が表示されます。

Step 7− [編集]をクリックしてから、[追加]をクリックします。次に、編集するファイルを選択します。ここでファイルを選択しましたExample/i18n/en.json。

ファイルを開くと、次のスクリーンショットで指定されているようにjsonデータが表示されます。

Step 8− [保存]をクリックしてから、[閉じる]ボタンをクリックします。
Step 9−最後に[公開]ボタンをクリックして、編集したファイルを公開します

Step 10−次のスクリーンショットに示すように、[メッセージのコミット]リンクをクリックして、コミットメッセージを変更できます。

Step 11− [保存]をクリックしてから[閉じる]ボタンをクリックする場合は、キーボードのeを押して追加情報を追加します。

コードレビューは、Gerritのワークフローの重要な部分です。基本的な概念は、マージする前にコードを確認する必要があるということです。
MediaWikiのコードのワークフローは、マージする前に確認できます。また、MediaWikiの外観と動作をカスタマイズする拡張機能も確認できます。国際化とローカリゼーションのコミットをプッシュできる特別なケースが1つあります。
開発が終了したら、すべてのコミットをリモートブランチにプッシュできます。誰かが変更をローカルにフェッチし、マージコミットを作成することで、フェッチした変更をローカルマスターにマージします。これらの変更をにプッシュできますrefs/for/master。
プロジェクトの所有者とは、プロジェクトが言及された人物に属していることを意味します。プロジェクト所有者は、メンバーや他のグループを追加できない仮想グループです。プロジェクトの所有者は、さまざまなグループにプロジェクトの許可を与えるためのアクセス権を提供します。
次の手順を使用して、プロジェクトのアクセス権を表示できます。
Step 1−このリンクをクリックして、Gerritダッシュボードを開きます。

Step 2− [プロジェクト]→ [リスト]オプションをクリックします。次のスクリーンショットに示すように、プロジェクトリストでプロジェクトを検索し、クリックします。

Step 3−プロジェクトを開いたら、次のスクリーンショットに示すように[アクセス]オプションをクリックします。

Step 4−編集オプションをクリックします。ドロップダウンメニューをクリックして、アクセス権を変更できます。次のスクリーンショットに示すように、[変更を保存]ボタンをクリックします。

誰でもコードを確認し、Gerritのコードにコメントすることができます。次の手順を検討してください-
Step 1 − Gerritにログインして、前の章で指定したようにGerritダッシュボードを開きます。
Step 2 −次に、次のスクリーンショットに示すように、Gerritプロジェクト、ブランチ、更新日などを含む任意の件名をクリックします。

Step 3−次に、画面が表示されます。次のスクリーンショットに示すように、[メッセージのコミット]オプションをクリックします。

変更セットの重要なフィールドには、レビュー担当者、レビュー担当者の追加、サイドバイサイドオフなどがあります。パッチセットの比較には、古いバージョン履歴リストの選択、新しいパッチセットの詳細の展開などが含まれます。コードの確認、マージ、または拒否Gerritの現在のバージョンには存在しない変更ボタンの破棄、パッチの送信ボタンなどが含まれます。