セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット作成
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
Eメール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの慣例
- 日常のGit
- よくある質問 (FAQ)
- 用語集
- フック
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
プラミングコマンド
- 2.44.1 → 2.49.0 変更なし
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.6 変更なし
-
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]の「リセット、リストア、リバート」を参照してください。
オプション
- <コミット>…
-
打ち消すコミット。コミット名を指定するより完全な方法のリストについては、gitrevisions[7]を参照してください。コミットのセットを指定することもできますが、デフォルトではトラバースは行われません。git-rev-list[1]とその
--no-walk
オプションを参照してください。 - -e
- --edit
-
このオプションを使用すると、*git revert* はリバートをコミットする前にコミットメッセージを編集することを許可します。これは、ターミナルからコマンドを実行した場合のデフォルトです。
- -m 親番号
- --mainline 親番号
-
通常、マージのどの側をメインラインと見なすべきか不明なため、マージを打ち消すことはできません。このオプションは、メインラインの親番号(1から始まる)を指定し、指定された親に対する変更をリバートすることを可能にします。
マージコミットを打ち消すことは、そのマージによってもたらされたツリーの変更を今後一切望まないことを宣言します。結果として、後続のマージは、以前に打ち消されたマージの祖先ではないコミットによって導入されたツリーの変更のみをもたらします。これは、あなたの望む結果である場合とそうでない場合があります。
詳細については、revert-a-faulty-merge How-Toを参照してください。
- --no-edit
-
このオプションを使用すると、*git revert* はコミットメッセージエディタを起動しません。
- --cleanup=<モード>
-
このオプションは、コミットメッセージがコミット機構に渡される前にどのようにクリーンアップされるかを決定します。詳細については、git-commit[1]を参照してください。特に、*<モード>* が
scissors
の値を与えられた場合、競合が発生した際にMERGE_MSG
にシザーズが追加されてから渡されます。 - -n
- --no-commit
-
通常、このコマンドは、どのコミットが打ち消されたかを示すコミットログメッセージを含むコミットを自動的に作成します。このフラグは、指定されたコミットを打ち消すために必要な変更をワーキングツリーとインデックスに適用しますが、コミットは行いません。さらに、このオプションが使用される場合、インデックスがHEADコミットと一致している必要はありません。リバートはインデックスの初期状態に対して行われます。
これは、複数のコミットの効果を連続してインデックスにリバートする場合に便利です。
- -S[<キーID>]
- --gpg-sign[=<キーID>]
- --no-gpg-sign
-
コミットにGPG署名します。
keyid
引数はオプションであり、デフォルトはコミッターの識別情報です。指定する場合は、スペースなしでオプションに付加する必要があります。--no-gpg-sign
は、commit.gpgSign
設定変数と以前の--gpg-sign
の両方を打ち消すのに役立ちます。 - -s
- --signoff
-
コミットメッセージの最後に
Signed-off-by
トレーラーを追加します。詳細については、git-commit[1]のsignoffオプションを参照してください。 - --strategy=<戦略>
-
指定されたマージ戦略を使用します。一度だけ使用してください。詳細については、git-merge[1]のMERGE STRATEGIESセクションを参照してください。
- -X<オプション>
- --strategy-option=<オプション>
-
マージ戦略固有のオプションをマージ戦略に渡します。詳細については、git-merge[1]を参照してください。
- --rerere-autoupdate
- --no-rerere-autoupdate
-
rerereメカニズムが現在の競合に対する記録された解決策を再利用してワーキングツリー内のファイルを更新した後、その解決結果でインデックスも更新することを許可します。
--no-rerere-autoupdate
は、別途git add
で結果をインデックスにコミットする前に、rerere
が何をしたかを再確認し、潜在的なマージミスを捕捉する良い方法です。 - --reference
-
ログメッセージの本文を「This reverts <打ち消されるコミットの完全なオブジェクト名>.」で始める代わりに、"--pretty=reference"形式(cf. git-log[1])を使用してコミットを参照します。
revert.reference
設定変数は、このオプションをデフォルトで有効にするために使用できます。
考察
Gitは基本的なコミットメッセージを自動的に作成しますが、元のコミットがなぜ打ち消されるのかを説明することを*強く*お勧めします。さらに、リバートを繰り返しリバートすると、たとえば*「"Reapply "<元の件名>"を再適用」*のように、件名がますます扱いにくくなります。これらをより短く、よりユニークなものに書き換えることを検討してください。
設定
このセクションのこの行より下の内容は、git-config[1]ドキュメントから選択的に含まれています。内容はそちらで見られるものと同じです。
GIT
git[1]スイートの一部