Git
GitHub
初心者向け
creatus

昨年、自社の課題でGit, GitHub初心者5人でアプリ開発を行なったのですが
色々忘れてしまっているので思い出すために当時のワークフローを書き出します。

個々の作業

①イシューをもとにコーディング
②テスト
③リモートリポジトリにプッシュ
④プルリクエストスクリーンショット 2018-05-13 14.25.49.png

イシュー(課題や問題点)
これをもとにそれぞれがコーディングを行う。
スクリーンショット 2018-05-12 23.21.37.png

プルリクエストするところ
どのブランチへ自身の作業を取り込んで欲しいかを設定する。
スクリーンショット 2018-05-12 23.41.52.png

チーム作業

①進捗報告
②プルリクエストチェック
③コードレビュー
④マージとクローズ または イシュー
⑤新たなイシューを挙げる

イシュー
#3というイシューに対して#4という対応がされ、プルリクエストされている状態
refs__3_by_xkkx_·_Pull_Request__4_·_xkkx_test.jpg

Files changedペインから対応内容を確認
きれいなdiffが表示されるのでレビューアはここでコードレビューを行う。
refs__3_by_xkkx_·_Pull_Request__4_·_xkkx_test.jpg

問題なければマージを行い、クローズする。(マージする場合はプルリクエストされたブランチへ(基本的には)自動でマージされます。
スクリーンショット 2018-05-12 23.47.51.png

イシューの対応がマージされ、クローズした状態
スクリーンショット 2018-05-13 14.03.43.png

便利な機能

コンフリクト時にGitHub内で手動マージができます。

コンフリクトが発生している状態。
スクリーンショット 2018-05-13 14.25.49.png

マージエディタ ここでコードの取捨選択を行う。
Resolve_Conflicts_·_Pull_Request__6_·_xkkx_test.jpg

異なる作業ブランチのマージが完了したらdevelopブランチへpushして作業完了となります。
Delete branchをクリックすればその作業ブランチを削除して、プルリクエストをクローズできます。
文字列を定数化、Javadocを追加_by_xkkx_·_Pull_Request__6_·_xkkx_test.jpg

振り返ってみて

レビュー依頼、コードレビュー、マージ、ブランチ管理がGitHub上で一元的に行うことができ、
素晴らしいツールだと再度実感しました。
非公開にするには有料になってしまうので、現場で採用されることはあまりないのかもしれませんが。