git revert コマンドは、指定したコミットの変更を打ち消す新しいコミットを作成するためのコマンドです。
履歴を改変せずに「取り消し」を記録するため、公開リポジトリでも安全に利用できます。
構文(Syntax)
git revert [オプション] <コミットID>...
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
<コミットID> | 指定コミットを打ち消す | git revert abc1234 |
--no-commit | 取り消しをコミットせず、ステージングに残す | git revert --no-commit abc1234 |
-n / --no-edit | 自動生成メッセージをそのまま使う | git revert --no-edit abc1234 |
-m <番号> | マージコミットを取り消す際に親番号を指定 | git revert -m 1 abc1234 |
実行例
単一のコミットを取り消す
git revert abc1234
出力例:
[main 1a2b3c4] Revert "Add login feature"
1 file changed, -10 +0
複数のコミットをまとめて取り消す
git revert abc1234 def5678
自動コミットせずに取り消し内容を確認
git revert --no-commit abc1234
(その後 git commit で確定)
自動生成メッセージを編集せずにコミット
git revert --no-edit abc1234
マージコミットを取り消す
git revert -m 1 9z8y7x6
エラー例(コンフリクト発生)
git revert abc1234
出力例:
error: could not apply abc1234... Add login feature
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
関連コマンド
git reset: コミットを履歴ごと取り消す(公開リポジトリでは非推奨)。git restore: ファイルを特定の状態に戻す(ファイル単位)。git cherry-pick: 特定のコミットを適用する。
備考
git revertは「打ち消しコミットを追加する」ため、履歴は消えずに安全です。- チーム開発では、共有ブランチでの取り消しは
resetよりrevertが推奨されます。 - マージコミットの取り消しには
-mオプションが必須です。
参考
- Git公式ドキュメント: https://git-scm.com/docs/git-revert

コメント