最後のコミットを取り消すGitエイリアス

すべての変更をステージされた状態で保持しながら最新のコミットを取り消すgitエイリアスを作成。作業を失わない安全なコミット取り消し。

Workflow Aliases

詳細な説明

最後のコミットの安全な取り消し

undoエイリアスはソフトリセットを実行し、最後のコミットを削除しますが、すべての変更はステージングエリアに保持します:

[alias]
    undo = reset --soft HEAD~1

リセットモードの比較

3つのリセットモードの理解は不可欠です:

モード コミット ステージングエリア ワーキングディレクトリ
--soft 削除 保持 保持
--mixed(デフォルト) 削除 クリア 保持
--hard 削除 クリア クリア

--softモードはすべてを保持するため最も安全です。変更はステージされたまま残り、別のメッセージで再コミット、複数のコミットに分割、または追加の修正が可能です。

一般的なユースケース

コミットメッセージの修正:

git undo
git commit -m "より良いコミットメッセージ"

コミットを2つに分割:

git undo
git add src/auth/
git commit -m "認証モジュールの追加"
git add src/api/
git commit -m "APIエンドポイントの追加"

安全ネット

--hardリセットとは異なり、--softのundoは完全に非破壊的です。作業は失われません。気が変わった場合は、再度git commitを実行するだけで元のコミットが効果的に復元されます(新しいハッシュ付き)。

ユースケース

早すぎるコミット、コミットメッセージのタイプミス、含めるべきでないファイルの誤った含有、プッシュ前のコミット再構成の際に使用します。実際に最も頻繁に使用されるgitエイリアスの一つです。

試してみる — Git Alias Builder

フルツールを開く