WIP(作業中)ワークフローのGitエイリアス

作業中のコミットの保存と復元のためのgitエイリアスを作成。コンテキスト切り替え前に現在の状態を素早くスナップショット。

Workflow Aliases

詳細な説明

作業中(WIP)エイリアス

WIPパターンはコンテキスト切り替えが必要な時に現在の状態を素早く保存する方法を提供します。ペアのエイリアスが連携して動作します:

[alias]
    wip   = !git add -A && git commit -m 'WIP'
    unwip = !git log -1 --format='%s' | grep -q 'WIP' && git reset HEAD~1

wipの仕組み

wipエイリアスは2つの操作をチェーンするシェルコマンド(!プレフィックス付き)です:

  1. git add -Aがすべての変更(新規、修正、削除ファイル)をステージ
  2. git commit -m 'WIP'が「WIP」メッセージでコミットを作成

unwipの仕組み

unwipエイリアスは安全を意識した逆操作です:

  1. git log -1 --format='%s'で最後のコミットのサブジェクトを取得
  2. grep -q 'WIP'で「WIP」を含むか確認
  3. チェックに合格した場合のみ、git reset HEAD~1でコミットを取り消し

ガード句により、実際のコミットを誤って取り消すことを防ぎます。

実践的なWIPワークフロー

# フィーチャーAの作業中に緊急バグが発生
git wip

# バグ修正に切り替え
git checkout hotfix-branch
# ... バグを修正、コミット、プッシュ ...

# フィーチャーAに戻る
git checkout feature-a
git unwip
# 中断したところから再開

WIPとStashの比較

機能 WIPエイリアス git stash
git logで表示 はい いいえ(別のstashスタック)
未追跡ファイルを含む はい(-A付き) -uフラグが必要
ブランチ固有 はい(ブランチにコミット) いいえ(グローバルstashスタック)
忘れやすさ 低い(ログに表示) 高い(隠れている)

WIPアプローチは可視性が高く忘れにくいため、多くのチームに好まれています。

ユースケース

コードレビュー、ホットフィックス、ミーティングデモのためにブランチを切り替える必要がある時に現在の作業を素早く保存するために使用します。unwipエイリアスにより、stashスタックを探すことなくシームレスに中断箇所から再開できます。

試してみる — Git Alias Builder

フルツールを開く