【Git中級編】もっと便利に!日常操作を効率化するGitコマンドオプション集

ALL

こんにちは、Tech Samuraiです!
Gitの基本的なサイクル(addcommit`push`)に慣れてくると、だんだんと「もっと効率よく操作したい」「もっと安全にコマンドを実行したい」という欲が出てきませんか?

実は、私たちが日常的に使っているGitコマンドには、その真価を引き出すための、数多くの便利な**オプション**が隠されています。今回の記事は、基本操作から一歩進んで、あなたの開発ワークフローを劇的に改善する、実践的なコマンドオプションを集めた「虎の巻」です。

これらのオプションを使いこなせば、あなたのGit操作はより速く、より安全に、そしてよりプロフェッショナルになるでしょう!


1. 変更内容の確認 (`git status`) を素早く

  • 基本: git status`
  • おすすめオプション: git status -s
# 変更状態を短縮形(ショートフォーマット)で表示
git status -s

M a.txt` (Modified)、?? b.txt` (Untracked) のように、変更状態が記号で簡潔に表示されます。慣れると、こちらの短い表示の方が見やすくなります。


2. ステージング (`git add`) を丁寧に行う

  • 基本: git add .
  • おすすめオプション: git add -p (または --patch)
# 変更箇所を対話形式で一つずつステージング
git add -p

add 'y/n'?` のように、ファイル内の変更箇所(Hunk)ごとにステージングするかどうかを尋ねられます。一つのファイルに複数の修正が混在している場合に、「この修正だけを先にコミットしたい」という時に非常に強力です。コミットを意味のある単位に保つためのプロの技です。


3. コミット (`git commit`) の質を高める

  • 基本: git commit -m "メッセージ"`
  • おすすめオプション:
# 変更内容の差分(diff)を確認しながらメッセージを書きたいとき
git commit -v

コミットメッセージのエディタ画面に、今回の変更内容の差分が一緒に表示されます。何を変更したかを正確に確認しながらメッセージを書けるため、記述ミスや漏れを防げます。

# 直前のコミットを修正したいとき(メッセージ修正、ファイルの追加忘れなど)
git commit --amend

「あ、ファイルを入れ忘れた!」という時に、git add`し直してからこのコマンドを実行すれば、新しいコミットを作らずに直前のコミットを修正できます。

【Git】”大変更”をどう伝える?Conventional CommitsでのBreaking Change表現法


4. プッシュ (`git push`) を安全に行う

  • 基本: git push origin main`
  • おすすめオプション: git push --force-with-lease
# 安全に強制プッシュしたいとき(rebase後など)
git push --force-with-lease

git rebase`などでローカルの履歴を書き換えた場合、通常のpush`は拒否されます。安易に--force`を使うと、もし他の誰かがその間にプッシュしていたら、その変更を消してしまう危険があります。--force-with-lease`は、自分の知らない変更がリモートにないことを確認した場合にのみ、強制プッシュを許可する、より安全な方法です。


5. プル (`git pull`) の履歴を綺麗に保つ

  • 基本: git pull origin main`
  • おすすめオプション(鉄板の組み合わせ):
# 履歴をきれいに保ち、コンフリクトを賢く避ける
git pull --rebase --autostash
  • --rebase`: マージコミットを作らず、リモートの変更の上に自分の変更を再配置(rebase)します。これにより、履歴が一本化されて非常に綺麗に保たれます。
  • --autostash`: コミットしていない変更を一時的に退避させ、pull完了後に自動で元に戻してくれます。「pullしたいけど、まだコミットしたくない変更がある…」というジレンマを解消します。

6. ログ (`git log`) から欲しい情報だけを抜き出す

  • 基本: git log`
  • おすすめオプション:
# 各コミットの変更内容(差分)も一緒に表示
git log -p

過去のコミットで「具体的にどのコードが変更されたのか」を確認したい場合に非常に便利です。

# 特定の条件でログを絞り込む
# 作者で絞り込む
git log --author="Taro"
# コミットメッセージのキーワードで絞り込む
git log --grep="バグ修正"
# 期間で絞り込む(例: 2週間前から現在まで)
git log --since="2 weeks ago"

最強の組み合わせ例(エイリアスにおすすめ):

# グラフ、1行、ブランチ名、全ブランチを表示
git log --graph --oneline --decorate --all

ブランチの分岐やマージの流れが視覚的に分かりやすく、最もよく使われる組み合わせの一つです。


まとめ

Gitの基本コマンドは、いわば「普通のマニュアル車」です。今回紹介したオプションは、あなたの車に「パワーウィンドウ」や「バックモニター」、「衝突被害軽減ブレーキ」を追加するようなもの。一度この快適さを知ってしまうと、もう元には戻れません。

ぜひ、これらのオプションをあなたの日常のワークフローに取り入れて、より安全で快適なGitライフを送ってください!

【Python開発】RyeプロジェクトにおけるGitの初めの一歩(初期設定と最初のコミット)

【Git中級編】gitignoreの設定とrebase入門!コミット履歴を綺麗に保つプロの技

【Git】”大変更”をどう伝える?Conventional CommitsでのBreaking Change表現法

コメント

タイトルとURLをコピーしました