コミットの取り消し
メニューを表示するにはスワイプしてください
バージョン管理システムであるGitを使用する際、特定のコミットによって導入された変更を元に戻す必要が生じることがあります。これは、バグの発見や、機能が本番環境に適していないと判断した場合、あるいは別のアプローチを試したい場合など、さまざまな理由が考えられます。
幸いにも、Git には git revert コマンドが用意されており、特定のコミットで導入された変更の逆の変更を行う新しいコミットを作成することで、変更を元に戻すことができます。
最後のコミットを元に戻す
最後のコミットを元に戻すには、次のコマンドを使用します:
git revert HEAD
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.
Vimで変更を保存して終了するには、Escapeキーを押し、大文字のZを2回入力します。
最後に、直近2つのコミットの変更内容を確認します:
git log -p -2
基本的に、予想通り新しいコミットが逆の変更内容で作成されました。
矢印キーで上下にスクロールし、qキーで終了します。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください