セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.50.1 変更なし
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 変更なし
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 変更なし
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 変更なし
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 変更なし
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 変更なし
-
2.37.0
2022-06-27
- 2.30.1 → 2.36.6 変更なし
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 変更なし
-
2.27.0
2020-06-01
- 2.23.1 → 2.26.3 変更なし
-
2.23.0
2019-08-16
- 2.22.1 → 2.22.5 変更なし
-
2.22.0
2019-06-07
- 2.10.5 → 2.21.4 変更なし
-
2.9.5
2017-07-30
- 2.8.6 変更なし
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 変更なし
-
2.0.5
2014-12-17
概要
git revert [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] <commit>… git revert (--continue | --skip | --abort | --quit)
説明
1 つまたは複数の既存のコミットが与えられた場合、関連するパッチによって導入された変更を打ち消し、それらを記録する新しいコミットを作成します。これには、ワーキングツリーがクリーンであること (HEAD コミットからの変更がないこと) が必要です。
注: git revert は、以前のコミット (多くの場合、誤ったもののみ) の効果を打ち消す新しいコミットを記録するために使用されます。ワーキングディレクトリ内のコミットされていないすべての変更を破棄したい場合は、git-reset[1]、特に --hard
オプションを参照してください。別のコミットにあった特定のファイルを抽出したい場合は、git-restore[1]、特に --source
オプションを参照してください。これらの代替案はどちらもワーキングディレクトリ内のコミットされていない変更を破棄するため、注意してください。
これら3つのコマンドの違いについては、git[1]の「リセット、リストア、リバート」を参照してください。
オプション
- <commit>…
-
打ち消すコミット。コミット名を指定する方法のより完全なリストについては、gitrevisions[7] を参照してください。コミットのセットも指定できますが、デフォルトではトラバーサルは行われません。git-rev-list[1] とその
--no-walk
オプションを参照してください。 - -e
- --edit
-
このオプションを使用すると、git revert は revert をコミットする前にコミットメッセージを編集することを許可します。これは、ターミナルからコマンドを実行した場合のデフォルトです。
- -m parent-number
- --mainline parent-number
-
通常、マージのどちら側をメインラインと見なすべきかわからないため、マージを打ち消すことはできません。このオプションは、メインラインの親番号 (1 から始まる) を指定し、指定された親に対する変更を打ち消すことを許可します。
マージコミットを打ち消すと、マージによって取り込まれたツリーの変更を二度と必要としないことを宣言します。その結果、その後のマージでは、以前に打ち消されたマージの祖先ではないコミットによって導入されたツリーの変更のみが取り込まれます。これが目的とするものかどうかは状況によります。
詳細については、不完全なマージを打ち消す方法 を参照してください。
- --no-edit
-
このオプションを使用すると、git revert はコミットメッセージエディターを起動しません。
- --cleanup=<mode>
-
このオプションは、コミットメッセージがコミット機構に渡される前にどのようにクリーンアップされるかを決定します。詳細については、git-commit[1] を参照してください。特に、<mode> の値が
scissors
に指定されている場合、競合が発生した際にMERGE_MSG
にはさみが追加されます。 - -n
- --no-commit
-
通常、このコマンドは、どのコミットが打ち消されたかを示すコミットログメッセージを含むいくつかのコミットを自動的に作成します。このフラグは、指定されたコミットを打ち消すために必要な変更をワーキングツリーとインデックスに適用しますが、コミットは作成しません。さらに、このオプションが使用される場合、インデックスは HEAD コミットと一致している必要はありません。revert は、インデックスの開始状態に対して行われます。
これは、複数のコミットの効果をインデックスに連続して打ち消す場合に役立ちます。
- -S[<keyid>]
- --gpg-sign[=<keyid>]
- --no-gpg-sign
-
GPG-sign コミット。
keyid
引数はオプションで、デフォルトはコミッター ID です。指定された場合、スペースなしでオプションに付加する必要があります。--no-gpg-sign
は、commit.gpgSign
設定変数と以前の--gpg-sign
の両方を打ち消すのに役立ちます。 - -s
- --signoff
-
コミットメッセージの最後に
Signed-off-by
トレーラーを追加します。詳細については、git-commit[1] の signoff オプションを参照してください。 - --strategy=<strategy>
-
指定されたマージ戦略を使用します。一度だけ使用する必要があります。詳細については、git-merge[1] の MERGE STRATEGIES セクションを参照してください。
- -X<option>
- --strategy-option=<option>
-
マージ戦略固有のオプションをマージ戦略に渡します。詳細については、git-merge[1] を参照してください。
--rerere-autoupdate
--no-rerere-autoupdate
-
rerere メカニズムが現在の競合に対して記録された解決策を再利用してワーキングツリーのファイルを更新した後、その解決結果でインデックスも更新することを許可します。
--no-rerere-autoupdate
は、別途git
add
で結果をインデックスにコミットする前に、rerere
が何をしたかを再確認し、潜在的な誤マージを捕捉するのに良い方法です。 - --reference
-
ログメッセージの本文を「This reverts <full-object-name-of-the-commit-being-reverted>.」で開始する代わりに、"--pretty=reference" 形式 (cf. git-log[1]) を使用してコミットを参照します。
revert.reference
設定変数を使用して、このオプションをデフォルトで有効にすることができます。
考察
Git は基本的なコミットメッセージを自動的に作成しますが、元のコミットが打ち消される理由を説明することを強くお勧めします。さらに、revert の revert を繰り返すと、件名がますます扱いにくくなります (例: *Reapply "Reapply "<original-subject>""*)。これらをより短く、よりユニークなものに書き直すことを検討してください。
設定
このセクションのこの行より下のすべての内容は、git-config[1] ドキュメントから選択的に含まれています。内容はそちらで見られるものと同じです。
GIT
git[1]スイートの一部