Pull Request を安全に受け取る方法(Backlog版)


はじめに

新しく会社に入社する人に向けた Git および Github の勉強会をすることになったので、重要なポイントを確認するために下記の本を読みました。
その時に話をしたいと思うことをいくつかまとめたいと思い投稿することにしました。

Github については本でもまとめられていたり、他の人がまとめられていたりするので、
"Pull Request を安全に受け取る方法" の Backlog 版を書きました。参考にしていただけると嬉しいです。

Github実践入門
https://www.amazon.co.jp/GitHub%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-Pull-Request%E3%81%AB%E3%82%88%E3%82%8B%E9%96%8B%E7%99%BA%E3%81%AE%E5%A4%89%E9%9D%A9-PRESS-plus/dp/477416366X

関連リンク

関連リンクを下記に載せておくので、必要であれば参考にしてください。。

Pull Request を安全に受け取る方法

全体フロー

Pull Request を安全に受け取るまでの全体のフローを下にまとめました。
上から順に作業していくことで、Pull Request を安全に受け取ることができます。

  1. Pull Request のコードに問題がないかどうかを確認する
    • clone もしくは pull により、リポジトリを最新の状態にする
    • Pull Request送信者のリモートリポジトリを取得する
    • 確認用のブランチを作成する
  2. マージする(2パターンあり)
  3. 1.で作成したブランチを削除する

Pull Request のコードに問題がないかどうかを確認する

Pull Request のコードに問題がないかどうかを確認するために、
自分の手元の環境にPull Requestのコードを落として安全確保のためにブランチを作成してそのブランチにてコードの確認をします。

clone もしくは pull により、ローカルリポジトリを最新の状態にする

$ git clone ${Pull Requestの元のリポジトリ}

Pull Request送信者のリモートリポジトリを取得する

Pull Request送信者のリモートリポジトリを取得します。

// リモートリポジトリにPull Request送信者のリポジトリを登録
$ git remote add ${Pull Request送信者} ${Pull Requestされたリポジトリリンク}

// Pull Request送信者のリポジトリのデータを取得
$ git fetch ${Pull Request送信者}

確認用のブランチを作成する

下記コマンドにて確認用のブランチを作成し、手元の環境にてPull Requestのコードが問題なく動くかどうかを確認する。
ここはコード内容によって確認項目が異なるかと思うので、各自確認を進めてください。

$ git checkout -b pull_request_1

マージする(2パターンあり)

Backlog の画面からマージする方法

パターンの1つ目です。

work欄をクリックします。

印をつけたところをmasterに変更して、マージボタンを押します。
これでworkブランチをmasterブランチにマージをすることができました。

最後に、マージができていることを確認します。
色々と方法はありますが、コミット履歴タブを押すと、下の添付画像の通り "Merge pull request..." と確認できました。

CLI (ターミナル)からマージする方法

パターンの2つ目です。

// Pull Requestを取り込むmasterブランチへ切り替え
$ git checkout master

// masterブランチへ${Pull Request送信者}/workの内容をマージする
$ git merge ${Pull Request送信者}/work

// 変更内容を確認して、意図しない変更が含まれていないかを確認する
$ git diff origin/master

// 変更内容に問題がなければ、pushをすることでPull Requestを取り込む
$ git push

ブランチを削除する

不要になったブランチは残しておくと、後で見返したときに何かわからなくなるため、使い終わったら削除するようにします。
("確認用のブランチを作成する"の項目で作成したブランチを削除します。)

下記のコードを実行してください。

$ git branch -D pull_request_1

まとめ

Backlog 版として記事をまとめましたが、Pull Requestを安全に受け取る方法の全体的なフローに変わりはありません。
Github と Backlog で UI に差があることから少し操作方法に差があるだけですが、この記事をみて誰かの役に立てば嬉しく思います。