はじめに
こんにちは、株式会社TechoesのK(入社1年目、エンジニア歴3年目)です
今回はエンジニアとは切っても切れないGitコマンドについて、実務で使用頻度の高いものをご紹介したいと思います
前提条件
前提として、本記事ではGit Flowを採用する前提で記述しています
- Git Flowについて
Git Flowは、Gitを使ったバージョン管理のためのブランチ戦略の一つで、以下のような形式が多い
-
メインブランチ: 主に以下の3つのブランチを使用する
-
master
ブランチ: 本番リリースを管理するためのブランチ。このブランチは常に安定している状態を保つ -
develop
ブランチ: 次のリリースのための開発作業が行われるブランチ。最新の開発バージョンが含まれる -
staging
ブランチ: 本番リリース前の最終確認を行うためのブランチ。本番環境と同様の環境で最終テストを行い、問題がなければmaster
ブランチにマージする
-
-
サポートブランチ: 開発のため、一時的に作成されるブランチ
-
feature
ブランチ: 新機能の開発のためのブランチ。develop
ブランチから作成し、開発が完了したらdevelop
ブランチにマージする -
hotfix
ブランチ: 本番環境で発見された重大なバグを修正するためのブランチ。master
ブランチから作成し、修正が完了したらmaster
とdevelop
ブランチにマージする
-
確認編
まずは確認から
- 現在のブランチ内の作業の状態
git status
- 過去のコミット履歴の確認
git log
--oneline
オプションをつけると1行で表示できて便利
- 作業ツリーとインデックスの違いを表示
git diff
このコマンドに関しては出来ることが多いのでこちらのページが参考になる
- 特定のコミットの詳細を表示
git show <commit>
- いつ修正されたかの確認
git blame -L {確認したい1行目の行数},{確認したい最後の行の行数} {path}
パスで指定したファイル内の指定した範囲のコードがいつ誰によって修正されたのかを確認できる
- 余談
VSCodeなら以下のページでお勧めされている「Git graph」というプラグインを使うと、コミットツリーなどがGUIで一目瞭然に確認できるためおすすめ
Git graphのわかりやすい使い方
やり直し編
「あっ、コミットミスった...」という時によく使うコマンドたち
- 1コミット戻す
ど定番、直前のコミットを行なっていない状態に戻す
git reset --soft HEAD^
- コミットコメントの修正
地味に多いコミットのコメントミス、これで最新のコミットのコメントを修正できる
git commit --amend -m "差し替えたいコメントを入力"
このコマンド達はgit push
前なら使用可能だが、git push
後はgit rebase
などで修正するしかないので注意が必要
一時保存編
作業をコミットせずに一時保存したいとき
- 作業内容の保存
git stash
現在の作業内容を退避して保存(新規作成ファイルも保存したい場合はgit stash -u
)
- 保存した作業内容(以下スタッシュと表記)の適用
git stash apply
スタッシュが適用される(保存したブランチ以外だとコンフリクトが起きる可能性が高いので元のブランチで実行推奨)
- スタッシュの全削除
git stash clear
全てのスタッシュが消えるため、必要なものまで消さないか注意が必要
- スタッシュの指定削除
git stash drop stash@{対応する番号を指定}
削除したいスタッシュのstash@{~}
の〜内の数字を指定して削除することができる
ブランチ編
ブランチ周りのあれこれ
- 現在のブランチの確認
git branch
-a
オプションをつけるとリモートブランチも確認できる
- ブランチの新規作成
git checkout -b {ブランチ名}
現在のブランチから新しくブランチを作成する
- ブランチの削除
git branch -d
git push origin --delete
マージ以外でブランチを削除するときなど
- ローカルとリモートのブランチの強制一致
git reset --hard origin/
ローカルのブランチの現在位置がおかしくなった時などに、強制的にリモートの最新コミット位置にする
おまけ
- 空のコミット
git commit --allow-empty -m "空コミット"
コードに修正を加えずに、CI/CDなどで自動テストを再実行したい時などに空のコミットができる
おわりに
以上、独断と偏見に基づいたGitのよく使うコマンド集と使い方について紹介しました。
初学者の方向けに実務の使用頻度高めのコマンドを紹介できたと思います。(ベテランの方には退屈だったかも?)
最後までお読みいただき、ありがとうございました。この記事が皆さんの開発作業の一助となれば幸いです。