Gerrit-quick-guide
Gerrit-概要
Gerritは、link:/git/index [Git]と統合され、Gitバージョン管理システムの上に構築されたWebベースのコードレビューツールです(開発者が協力して作業の履歴を維持するのに役立ちます)。 コードレビューが完了したら、Gitリポジトリへの変更をマージできます。
Gerritは、Java、Servlet、GWT(Google Web Toolkit)で書かれた_Shawn Pearce_によって開発されました。 Gerritの安定リリースは2.12.2で、_Apache License v2_でライセンスされた2016年3月11日に公開されています。
Gerritを使用する理由
以下に、Gerritを使用する特定の理由、理由を示します。
- Gerritを使用すると、ソースコードでエラーを簡単に見つけることができます。
- 通常のGitクライアントがあれば、Gerritで作業できます。 Gerritをインストールする必要はありません クライアント。
- Gerritは、開発者とgitリポジトリの中間体として使用できます。
Gerritの機能
- Gerritは、無料でオープンソースのGitバージョン管理システムです。
- Gerritのユーザーインターフェースは、_Google Web Toolkit_で形成されています。
- すべてのコミットを確認するための軽量フレームワークです。
- Gerritはリポジトリとして機能し、コードをプッシュしてコミットのレビューを作成します。
Gerritの利点
- Gerritは、Gitリポジトリとコードレビュー用のWebフロントエンドのアクセス制御を提供します。
- 追加のコマンドラインツールを使用せずにコードをプッシュできます。
- Gerritは、リポジトリレベルで許可を許可または拒否できます。 ブランチレベル。
- GerritはEclipseでサポートされています。
Gerritの欠点
- コードのコミットをレビュー、検証、再送信すると、市場投入までの時間が遅くなります。
- GerritはGitでのみ機能します。
- Gerritは遅く、変更が行われるソート順を変更することはできません 記載されています。
- Gerritにリポジトリを追加するには管理者権限が必要です。
Gerrit-インストール
Gerritを使用する前に、Gitをインストールし、いくつかの基本的な構成変更を実行する必要があります。 Gitクライアントを異なるプラットフォームにインストールする手順は次のとおりです。
Gitクライアントのインストール
Linux
ソフトウェアパッケージ管理ツールを使用して、LinuxにGitをインストールできます。 たとえば、Fedoraを使用している場合、次のように使用できます-
sudo yum install git
UbuntuなどのDebianベースのディストリビューションを使用している場合は、次のコマンドを使用します-
sudo apt-get install git
Windows
GitをGit Webサイトからダウンロードして、Windowsにインストールできます。 msysgit.github.ioリンクに移動して、ダウンロードボタンをクリックするだけです。
Mac
Gitは次のコマンドを使用してMacにインストールできます-
brew install git
Gitをインストールするもう1つの方法は、Git Webサイトからダウンロードすることです。 MacにGitをインストールリンクに移動するだけで、Git for Macプラットフォームがインストールされます。
Gerrit-Gitを構成する
Gitをインストールしたら、構成変数をカスタマイズして個人情報を追加する必要があります。 _git config_というGitツールと-lオプションを使用して、構成変数を取得および設定できます(このオプションは現在の構成を提供します)。
git config -l
上記のコマンドを実行すると、次の画像に示すように構成変数が取得されます
コマンドを再度使用すると、カスタマイズした情報をいつでも変更できます。 次の章では、_git config_コマンドを使用してユーザー名とユーザーのメールを設定する方法を学びます。
Gerrit-ユーザー名とメールを設定する
_name_および_email_変数を設定することにより、各コミットを追跡できます。 name変数は名前を指定し、email変数はGitコミットに関連付けられた電子メールアドレスを識別します。 次のコマンドを使用してこれらを設定できます-
git config --global user.email "[email protected]"
git config --global user.name "your_name"
上記のコマンドを実行すると、次の画像に示すようにユーザー名とメールアドレスが取得されます。
Gerrit-新しいSSHキーを生成
SSHは、リモートコンピューターからネットワークサービスに安全にアクセスするために使用される_Secure Shell_または_Secure Socket Shell_プロトコルの略です。 SSHキーを設定して、コンピューターとGerrit間の信頼できる接続を提供できます。
Git Bashで次のコマンドを使用して、ローカルコンピューター上の既存のSSHキーを確認できます-
$ ls ~/.ssh
Enterボタンをクリックすると、次の画像に示すように既存のSSHキーが表示されます-
既存のSSHキーが見つからない場合は、新しいSSHキーを作成する必要があります。
新しいSSHキーの生成
Git Bashで次のコマンドを使用して、認証用の新しいSSHキーを生成できます-
$ ssh-keygen -t rsa -C "[email protected]"
すでにSSHキーを持っている場合は、新しいキーを生成しないでください。上書きされます。 _ssh-keygen_コマンドを使用できるのは、GitとGit Bashをインストールした場合のみです。
上記のコマンドを実行すると、_〜/.ssh_ディレクトリに2つのファイルが作成されます。
- *〜/.ssh/id_rsa *-秘密鍵または識別鍵です。
- *〜/.ssh/id_rsa.pub *-公共のテレビです。
Gerrit-SSHキーを追加
後で説明するさまざまなプラットフォームのSSHキーをssh-agentに追加できます。
Linux
Linuxシステムで次のコマンドを使用してSSHキーを追加します
cat/home/<local-user>/.ssh/id_rsa.pub
Windows
GIT GUIを開き、次の図に示すように、 Help→Show SSH Key に移動します。
次に、[クリップボードにコピー]ボタンをクリックして、キーをクリップボードにコピーします。
Mac
Mac OS Xでは、次のコマンドを使用して、_id_rsa.pub_の内容をクリップボードにコピーできます。
$ pbcopy < ~/.ssh/id_rsa.pub
Gerrit-SSHキーをGerritアカウントに追加します
SSHキーは、次の手順を使用してGerritアカウントに追加できます-
- *ステップ1 *-最初にhttps://wikitech.wikimedia.org/wiki/Special:CreateAccount[wmflabs.org] servicesでアカウントを作成します。
- *ステップ2 *-次にhttps://gerrit.wikimedia.org/r/login/%23%2Fq%2Fstatus%3Aopen[GerritのWebインターフェイス]にサインインします。
- *ステップ3 *-次に、右上隅でユーザー名をクリックし、[設定]オプションを選択します。 + Gerrit Settings +ここでは、Gerritを使用するためにJohnという名前のアカウントを作成しました
- *ステップ4 *-左側のメニューで[SSH公開キー]オプションをクリックし、フィールドにSSH公開キーを貼り付けます。
Gerrit-Gitで使用するSSHキーを追加
次のコマンドを使用してGitにSSHキーを追加できます-
- *ステップ1 *-Git Bashを開き、次のコマンドを使用してssh-agentを取得します。
$ eval 'ssh-agent'
- *ステップ2 *-次に、次のコマンドを使用してSSHキーをssh-agentに追加します
$ ssh-add ~/.ssh/id_rsa
- *ステップ3 *-次に、次のコマンドを使用してsshを実行します。これは、初めてログを記録するときに使用されるSSHフィンガープリントと一致します。
$ ssh -p 29418 <user_name>@gerrit.wikimedia.org
上記のスクリーンショットでは、 _ xyz123_ はインスタンスシェルアカウント名であり、Gerritアカウントの作成時に使用され、 _ Abc123_ はGerritアカウントのユーザー名であることがわかります。
Gerrit-Gitを使用したサンプルのダウンロード
次のGit Bashコマンドを使用して、 gerrit.wikimedia.org で編成されたプロジェクトのソースコードとともにGitを使用して例をダウンロードできます。
$ git clone
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples
_git clone_コマンドは、ディレクトリを新しいディレクトリに複製します。つまり、_既存のリポジトリ_のコピーを取得します。 上記のコマンドを実行すると、次のようなスクリーンショットが表示されます。
上記のコマンドは、「examples」リポジトリのクローンを作成し、オブジェクト、ファイルなどを受け取ります。 そのリポジトリからローカルブランチに保存します。
Gerrit-Git-Reviewのインストール
この章で説明するように、異なるプラットフォームに_git-review_をインストールすることで、Gerritを使用できます。
Windows
Windowsでは、次の手順にリストされているgit-reviewをインストールできます。
- ステップ1 *-git-reviewをインストールするために、最初にhttps://www.python.org/downloads/[Python]をインストールします。
- ステップ2 *-他のディレクトリにインストールする代わりに、Pythonインストールをデフォルトディレクトリ(C:\ Python27など)に保持します。
ステップ3 *-次に、パスを *_C:\ Python27 \; C:\ Python27 \ Scripts \; _ として使用して、Pythonスクリプトディレクトリの環境変数を設定します。
git_review_install
- ステップ4 *-バージョン2.7では、Pythonはpipを自動的にインストールします。 古いバージョンのPython 2.7の場合、このhttps://pip.pypa.io/en/latest/installing/#install-or-upgrade-pip[link]の説明に従ってpipをインストールできます。
- ステップ5 *-Git Bashを開き、次のコマンドを使用してgit-reviewをインストールします。
$ pip install git-review
Linux
Linuxでは、次の手順で説明するようにgit-reviewをインストールできます-
- ステップ1 * Linuxプラットフォームのユーザーには、共有ホストでのルートアクセス権がありません。 したがって、ルートアクセスなしで、次のコマンドを使用してユーザーディレクトリにgit-reviewをローカルにインストールできます-
virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21
- ステップ2 *-2つの方法を使用して、ローカルバイナリへのパスを拡張できます-
PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH
- ステップ3 *-次のコマンドを使用して、Gerritでの作業をセットアップします。
git review -s
or
~/virtualenv/bin/git-review -s
- ステップ4 *-ルートアクセスでは、次のコマンドを使用してgit-reviewをインストールできます。
sudo apt-get install git-review
- ステップ5 *-Pythonのインストール後に_apt-get_がない場合は、次のコマンドを使用します。
$ sudo easy_install pip
$ sudo pip install git-review==1.21
- ステップ6 *-Gerritを使用するには、次のコマンドを実行します。
git review -s
Mac OS X
Macでは、次の手順を使用してgit-reviewをインストールできます。
- ステップ1 *-このhttps://coolestguidesontheplanet.com/installing-homebrew-on-os-x-el-capitan-10-11-package-manager-for-unix-apps/[link。]からHomebrewをインストールします
- ステップ2 *-次に、次のコマンドを使用してgit-reviewをインストールします。
brew install git-review
Gerrit-Git-Reviewの構成
GerritはGitバージョン管理システムの上に構築され、他のホストからコードを抽出し、コードに変更をプッシュし、レビューのためにコードを送信します。 Gitのデフォルトのリモート名はoriginであり、次のコマンドを使用してgit-reviewにこの名前_'origin'_を使用するように指示します。
$ git config --global gitreview.remote origin
Gerrit-Gitレビューのセットアップ
Git-reviewを使用して、レビューのためにgitブランチをGerritに送信できます。 プロジェクトディレクトリで次のコマンドを使用してgitreviewを設定できます。
$ git review -s
Gitレビューは、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フックをインストールします。
Gerrit-更新マスター
次のコマンドを使用して、マスターブランチを最新の状態にできます。 git-pullコマンドは、別のローカルブランチからフェッチするか、別のリポジトリと統合します。
git pull origin master
- このコマンドは、元のリモート(フェッチするリモートのURL)、マスターブランチから変更をプルし、変更をローカルのチェックアウトブランチにマージします。
- オリジンマスターは、オリジンから最後にプルされたもののキャッシュされたコピーです。
- Git pullは、git fetch(リモートリポジトリから新しいコミットをフェッチする)とgit merge(新しいコミットをローカルブランチに統合する)の組み合わせです。
- Git pullは、デフォルトでローカルブランチとリモートブランチをマージします。
Gerrit-ブランチを作成する
次のコマンドを使用して、ローカルマシンにブランチを作成できます。
$ git checkout -b name_of_branch origin/master
上記のコマンドは、次のスクリーンショットに示すように新しいブランチを作成します。
ここでは、 branch123 を新しいローカルブランチとして使用しています。 次のコマンドを使用して、「マスター」から新しいブランチを表示できます。
$ git branch
上記のコマンドは、次のスクリーンショットに示す結果を生成します。
_Git checkout_はブランチ間を移動し、作業ディレクトリ内のファイルを更新し、そのブランチでコミットを記録するようGitに通知します。
Gerrit-変更を行い、コミットする
ローカルファイルシステムのコードを変更する場合、次のコマンドを使用してディレクトリ内の変更を確認できます。
$ 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-プッシュ変更セットをGerritに準備する
マスターにマージする前に、Gerritの変更を確認する必要があります。 マスターで発生した変更を同期できます。 作業中のブランチ内で次のコマンドを使用します。
$ git pull --rebase origin master
- 上記のコマンドは、リモートブランチから変更またはコミットをフェッチし、コミットをマスターの上にリベースします。
- 変更が完了し、コミットのリベースが完了したら、変更セットをレビューのためにGerritにプッシュできます。
- Git pull --rebaseは、変更が別のブランチに値しない場合によく使用されます。
- Git pullはgit fetchとgit mergeの組み合わせです。 _git pull --rebase_はgit fetchとgit rebaseの組み合わせです。
最初に、次のスクリーンショットに示すように、_git pull origin master_としてコマンドを実行します。
次のスクリーンショットに示すように、コマンドをgit rebase masterとして使用してコミットをリベースします。
Gerrit-変更セットをGerritにプッシュする
*_git-review_* コマンドを使用して、レビュー用にパッチを送信できます。 次のスクリーンショットに示すように、 *_ git review -R_* コマンドを実行して、変更セットをGerritにプッシュできます。
*_- R_* オプションは、Gitの変更をGerritに送信する前にリベースを完了しないようにgit-reviewに通知します。
次のコマンドを使用して、マスターではなく他のブランチにコードを送信できます。
git review name_of_branch
次のコマンドを使用して、コードを別のリモートに送信することもできます。
git review -r name_of_remote
Gerrit-変更の表示/次のステップ
このhttps://gerrit.wikimedia.org/r/#/dashboard/self[link]をクリックすると、Gerritダッシュボードで変更を表示できます。
[変更された著者名]リンクをクリックすると、次のスクリーンショットが表示されます。
次のスクリーンショットに示すように、拡散リンクをクリックして、変更されたファイルとその他の詳細を確認します。
Gerrit-Webインターフェースを介した編集
次の手順に示すように、Gerritアカウントにログインした後、Webインターフェイスを介してプロジェクトを編集できます。
- ステップ1 *-このhttps://gerrit.wikimedia.org/r/#/dashboard/self[link]をクリックしてGerritダッシュボードに移動します。 次のスクリーンショットが表示されます。
ステップ2 *-次に、_Project_列で指定された *mediawiki/extensions/examples リンクをクリックします。
- ステップ3 *-次のスクリーンショットに示すように、ツールバーの[全般]リンクをクリックします。
- ステップ4 *-_General_リンクを開くと、次のようなスクリーンショットが表示されます。
- ステップ5 *-[変更の作成]ボタンをクリックすると、次のスクリーンショットに示すように、詳細が表示されたポップアップウィンドウが開きます。
- ステップ6 *-情報を入力し、_Create_ボタンをクリックします。
変更を作成すると、次のスクリーンショットに示すように情報が表示されます。
ステップ7 *-Edit_をクリックしてから、_Add_をクリックします。 次に、編集するファイルを選択します。 ここでは、ファイル *_Example/i18n/en.json を選択しました。
ファイルを開くと、次のスクリーンショットで指定されているjsonデータが表示されます。
- ステップ8 *-[保存]をクリックし、[閉じる]ボタンをクリックします。
- ステップ9 *-最後に_Publish_ボタンをクリックして、編集したファイルを公開します
- ステップ10 *-次のスクリーンショットに示すように、_Commit_Messageリンクをクリックしてコミットメッセージを変更できます。
- ステップ11 *-_Save_をクリックしてから_Close_ボタンをクリックする場合は、キーボードの_e_を押して追加情報を追加します。
Gerrit-マージ前のレビュー
コードレビューは、Gerritのワークフローの重要な部分です。 基本的な概念は、コードをマージする前にレビューする必要があるということです。
MediaWikiのコードのワークフローは、マージする前に確認でき、MediaWikiの外観と動作をカスタマイズする拡張機能も確認できます。 https://en.wikipedia.org/wiki/Internationalization_and_localization [国際化とローカリゼーション]コミットをプッシュできる特別なケースが1つあります。
開発が完了したら、すべてのコミットをリモートブランチにプッシュできます。 誰かが変更をローカルにフェッチし、マージコミットを作成して、フェッチした変更をローカルマスターにマージします。 これらの変更を refs/for/master にプッシュできます。
Gerrit-プロジェクトオーナー
プロジェクト所有者とは、プロジェクトが言及された人に属していることを意味します。 プロジェクトオーナーは、メンバーまたは他のグループを追加できない仮想グループです。 プロジェクトの所有者は、さまざまなグループにプロジェクトの許可を許可するアクセス権を提供します。
次の手順を使用して、プロジェクトのアクセス権を表示できます。
- ステップ1 *-このhttps://gerrit.wikimedia.org/r/#/dashboard/self[link]をクリックしてGerritダッシュボードを開きます。
- ステップ2 *-_Projects→List_オプションをクリックします。 次のスクリーンショットに示すように、プロジェクトリストでプロジェクトを検索してクリックします。
- ステップ3 *-プロジェクトを開いたら、次のスクリーンショットに示すように、_Access_オプションをクリックします。
- ステップ4 *-_edit_オプションをクリックします。 ドロップダウンメニューをクリックして、アクセス権を変更できます。 次のスクリーンショットに示すように、[変更を保存]ボタンをクリックします。
コメント、レビュー、マージの方法
誰でもコードをレビューし、Gerritのコードにコメントできます。 次の手順を検討してください-
- ステップ1 *-Gerritにログインして、前の章で指定されたGerritダッシュボードを開きます。
- ステップ2 *-次に、Gerritプロジェクト、ブランチ、更新日などを含むサブジェクトをクリックします。 次のスクリーンショットに示すように。
- ステップ3 *-次に、画面が表示されます。 次のスクリーンショットに示すように、_Commit Message_オプションをクリックします。
変更セットの重要なフィールドは、レビュー担当者、レビュー担当者の追加、サイドバイサイドオフなどです。 パッチセットの比較には、古いバージョン履歴リストの選択、新しいパッチセットの詳細の展開などが含まれます。 コードの確認とマージまたは拒否には、変更ボタンの破棄、パッチボタンの送信などが含まれます。 Gerritの現在のバージョンには存在しません。