初めに
本稿では、初心を大切にgitのコマンドでたまに利用する便利なコマンドを目的別に紹介します。
ブランチの操作系
ブランチのコピーを作成
ブランチのバックアップ作成時に利用できます。
git branch -c <コピー先ブランチ名>
ローカルブランチの削除
git branch -d <ブランチ名>
ブランチ名を変更する
git branch -m <変更後のブランチ名>
リモートで削除されたブランチをローカルにも削除反映する
リポートリポジトリの最新情報を取得し、リモートに存在しないブランチは削除する。
⇒不要な作業ブランチの削除に便利
※一度リモートへプッシュしたブランチが対象
git fetch --prune
追跡されていないブランチも消したい場合は以下を実行
git remote prune origin
ローカルの作業内容を捨ててリモートのブランチに合わせる
まずはgit fetchで最新のリモートブランチ情報をローカルに反映させます。
git fetch origin
git reset --hard origin/<ブランチ名>
既存のブランチ一覧を確認する
ローカルのブランチを確認する場合は以下のコマンドで確認できます。
git branch または git branch --list
リモート含めて既存のブランチ一覧を確認する
git fetchでまずは最新のリモートブランチ情報をローカルに反映させます。
-aオプションで、すべてのブランチ情報を確認できます。
git fetch
git branch -a
コミットの操作系
直前のコミットを修正する
遡及的に最新コミットが変更されるため、pushする前に実施するか、或いは git push --force-with-lease origin <ブランチ名>
でリモートのブランチを上書きする必要があります。
--amendオプションが先。間違えるとおかしなコミットメッセージになってしまうため、順番は注意が必要です。
git commit --amend -m "<コミットメッセージ>"
また、rebase コマンドを利用することで一つ以上前のコミットを修正することが出来ます。
git rebase -i HEAD~4
⇒ 表示されたコミット一覧の内で、pick をsquashに書き換えることで、一つ前のコミットにまとめることが出来ます。
git rebaseは以下のようにブランチの派生元を付け替えることにも利用できるので、慣れると非常に便利なコマンドです。
★今のブランチの作業内容(コミット群)について、mainブランチがベース(派生元)となるように付け替える場合
※リモートへプッシュする前に、このコマンドを実行して最新のブランチへ付け替えることで、マージする際にコンフリクトが発生することを防ぎ、スムーズな開発につなげることが出来ます。
git rebase main
コミットメッセージを変えずに最新コミットに変更内容を追加する
コミットするほどでもないけど一箇所修正忘れていた!という場合などに便利です。
git commit --amend --no-edit
履歴確認系
過去のコミットごとの変更ファイルを確認する
git log --stat
特定のファイルの過去の変更履歴を確認する
git log -p <ファイルパス>
過去のコミットを完結に確認する
git log --oneline
過去のコミットをブランチの分岐含め視覚的に確認する
git log --graph
差分確認系
ステージングしている内容(git add 済)との差分を確認する
add する前に、どこに変更を入れたか確認するのに便利です。
git diff
ステージングしている内容とローカルリポジトリの内容との差分を確認する
addした後に、どこに変更を入れたか確認するのに便利です。
git diff --staged
上記コマンドで確認し、add した内容をやっぱり取り消したい!となった場合は以下のコマンドでaddする前に戻すことが出来ます。
git restore --staged <ファイルパス>
リモートリポジトリの特定のブランチとの差分を確認する
git fetchで最新のリモート資材情報を取得した上で実行。
git fetch
git diff origin/main hotfix_branch
ブランチ間の差分確認を確認する
branch1を基準にブランチ2と比較します。
⇒ branch1の方が古いブランチとして扱われ、branch2で入った変更を差分として確認できます。
git diff branch1 branch2
変更量の取得
--shortstatオプションが利用できます。
git diff branch1 branch2 --shortstat
まとめ
本記事でご紹介した主要コマンド・オプションを一部省略してまとめます。
用途 | コマンド |
---|---|
ブランチのコピー | git branch -c |
ブランチの削除 | git branch -d |
ブランチ名の変更 | git branch -m |
リモートの削除反映 | git fetch --prune, git remote prune origin |
ブランチ確認 | git branch --list, git branch -a |
コミット修正 | git commit --amend |
コミット履歴確認 | git log --stat, --oneline, --graph |
差分確認 | git diff, git diff --staged, git diff --shortstat |
上記以外にも、cherry-pickやstash など開発に必須なコマンドは沢山ありますので、またの機会にまとめたいと思います。
皆様おすすめコマンドがございましたら是非ご教示いただければ幸いです。
最後までお読みいただきありがとうございました。
参考サイト