目的
タスクの作業途中にレビュー依頼を受けた時のコマンドをまとめました。
深夜テンションで書いたのでおかしいところがあったらコメントにて教えてください🙏
環境
$ git --version
git version 2.26.2
事前準備
まずは自分の作業ブランチでコミットする
$ git status
$ git diff
$ git add
$ git commit
レビューを始める前に自分の作業ブランチでコミットできるものはコミットしておきましょう。
作業途中のコードを一時的に退避する
$ git stash -u
急いでレビューしたい時はスタッシュで退避させておきます。
-u
オプションを指定すると untracked file
も含めて退避します。
$ git add -A
$ git commit -m wip
しばらく戻って来ないようなら、一旦コミットしてしまうのも良いかなと思います。
退避した内容を確認する
$ git stash list
$ git stash show -p
Gitのことを信頼してるので、あまり内容を確認することはないです。
ローカルリポジトリを最新の状態にする
$ git fetch
これを忘れるとレビューするブランチ見つからないやん🤔ってなります。
レビューしたいブランチに切り替える
$ git switch topic-xxx
ローカルリポジトリを最新の状態に更新して、レビューしたいブランチに切り替えます。(checkout
は使わないゾという強い意志)
ビルド&キャッシング
$ docker compose down --rmi all -v # 必要に応じて
$ docker compose up -d # 必要に応じて
$ yarn # 必要に応じて
$ yarn dev # yarn watch
$ composer install # 必要に応じて
$ composer dump-autoload
$ cp .env.example .env # 必要に応じて
$ php artisan migrate # 必要に応じて
$ php artisan db:seed # 必要に応じて
$ php artisan optimize
$ php artisan test
$ php artisan migrate:rollback # 必要に応じて
変更されているファイルに応じてビルドし直したり、キャッシュし直したりします。(内容はプロジェクトによりますが)
レビューする
魚の骨が喉につっかえてしまうようなコードがないか確認して問題なければLGTMです。
レビューする時に使うコマンドを補足でご紹介します。
レビュー用にウェブ設計チェックリスト作りました。チェックリストとソースコードを照らし合わせてレビューします。
補足: git log
コミットのログを表示します。
$ git log
$ git log --one-line
$ git -P log --one-line
-P
Git全般のオプションですが、ページャーなしで一気に表示します。地味に便利かもです。
$ git log --oneline --graph --decorate --name-status
オプション指定すれば良いってもんじゃないですけど、git log
のオプションめちゃくちゃいっぱいあります。
-
--one-line
1コミット1行で表示 -
--graph
グラフっぽい表示 -
--decorate
ブランチ名、タグ名等の別名表示 -
--name-status
ファイル名を表示
補足: git show
$ git show
$ git show -1
$ git show -2
$ git show -3
git show
と git show -1
は同じく最新のコミットの内容を表示します。
数値の代わりにハッシュ値を指定してもokです。
補足: git diff
$ git diff master
$ git diff master --name-only
他のブランチとの差分を見ることができます。
1個1個のコミットを見るのめんどいよって方はこちら。
--name-only
差分のあるファイル名のみ一覧表示
$ git diff master --color=always | less -R
git diff
の結果を less を使って表示したい時はこんな感じで表示します。オプションを付けないとうまく色付け表示できないので注意です。
補足: git grep
ワークツリー内の検索をします。
.gitignore
に登録してあるファイルは除外されるので便利です。
$ git grep -np 検索したいワード
-n
検索に一致した行数を表示
-p
検索に一致した行の前にある関数名を表示
補足: git blame
$ git blame ファイル名
リポジトリで管理されているファイル内の行ごとの最終更新を見れます。
行ごとのコミット(ハッシュ値)、コミッター、更新日が分かるよ。
問題が起きたとき等でどのコミットで変更されたかを探すなどするときに便利です。(犯人探しには絶対に使わないでください。大体犯人は自分です)
この辺りのサイトからレビュイーの趣味趣向合いそうな最高のLGTM画像を探します。
一番時間を使うところです。ここは全力で探しましょう。
補足: 結局のところ...
GitHubの差分表示が優秀すぎるのでコマンド打つ必要ないのかも🤔
8. 再び自分のブランチに戻る
$ git switch -
ブランチ名を指定してもいいですが入力するのも思い出すのも面倒です。
-
で一つ前のブランチに戻れます。
9. 退避しておいたコードを元に戻す
$ git stash pop
最新のスタッシュから退避させておいたコードを戻します。
いい感じのコードを書けたらコミットしてプッシュします。
10. コミットしてプッシュする
$ git add
$ git commit
$ git push -u origin HEAD
レビューする時は大体この流れでやってます。