こんにちは、Tech Samuraiです!
Gitの基本的なサイクル(add
→ commit`
→ 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の初めの一歩(初期設定と最初のコミット)
コメント