Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ コミットの取り消し | 変更の取り消し
Gitの基礎

コミットの取り消し

メニューを表示するにはスワイプしてください

バージョン管理システムであるGitを使用する際、特定のコミットによって導入された変更を元に戻す必要が生じることがあります。これは、バグの発見や、機能が本番環境に適していないと判断した場合、あるいは別のアプローチを試したい場合など、さまざまな理由が考えられます。

幸いにも、Git には git revert コマンドが用意されており、特定のコミットで導入された変更の逆の変更を行う新しいコミットを作成することで、変更を元に戻すことができます。

最後のコミットを元に戻す

最後のコミットを元に戻すには、次のコマンドを使用します:

git revert HEAD
Note
ノート

HEAD は現在のブランチ上の最新コミットを指すポインタです。

ブランチが1つだけの場合、HEAD最新のコミット を指します。 このコマンドは、前回のコミットの変更を元に戻す新しいコミットを作成します。 Gitは、必要に応じてコミットメッセージを編集できるようにデフォルトのテキストエディタを開きます。 エディタを保存して閉じることでリバートが完了します。

例: ワークフロー

まず、recipe.txt ファイルに新しい行を追加し、次の手順を記述してステージングエリアをスキップして直接コミットします:

echo "8. Peel the eggs" > recipe.txt
git commit -a -m "Add another step to the recipe"
変更と直接コミット

このコミットの詳細情報を、git show を指定して HEAD コマンドで表示。

git show HEAD
最新のコミット

誤ってすべての前の行が削除されたのは、誤った出力演算子 > を使用し、>> の代わりに使用されたため、ファイルが上書きされました。 心配ありません。git revert コマンドを使って、最新のコミットでのこれらの変更を元に戻します:

git revert HEAD
最新のコミットを元に戻す

ご覧の通り、デフォルトのテキストエディタ(この場合はVim)がデフォルトのコミットメッセージとともに開きます。 今回はそのままにしておきますが、実際のプロジェクトではロールバックの理由を含めることが推奨されます。例:

Revert "Add another step to the recipe"
Reason for rollback: the recipe.txt was overwritten.    
This reverts commit b1148490543882f038069a0233a5d7e0b33f6221.
Note
注意

Vimで変更を保存して終了するには、Escapeキーを押し、大文字のZを2回入力します。

最後に、直近2つのコミットの変更内容を確認します:

git log -p -2
最新2つのコミット

基本的に、予想通り新しいコミットが逆の変更内容で作成されました。

Note
注意

矢印キーで上下にスクロールし、qキーで終了します。

question mark

Git において git revert HEAD コマンドは何をしますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  4
some-alt