正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

変更をリバートする

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

コードにはミスがつきものです。バージョン管理を使用すれば、ミスを取り消して修正できます。

コミットをリバートすると、存在する問題をプロジェクトの履歴から消去するのではなく、問題のある変更を元に戻す新しいコミット(リバートコミット)が作成されます。コミットをリバートすると、以前のコミットが存在した場所のギャップではなく、明白な監査証跡が提供されます。コミットのリバートでは、プロジェクトのアクセス制御とプロセスに従って、以下を実行します。

  • 元のコミットで追加された行を削除する。
  • 元のコミットで削除された行を復元する。
  • 元のコミットで変更された行を以前の状態に復元する。

リバートするのはコミットだけではありません。問題のある変更が複数のコミットにまたがる場合は、コミットごとにリバートするのではなく、マージリクエストからすべての変更をリバートすることを検討してください。このアプローチにより、より明白な監査証跡が提供されます。

マージリクエストをリバートする

マージリクエストをマージした後、マージリクエスト内のすべての変更をリバートできます。

前提条件:

  • マージリクエストの編集、リポジトリへのコードの追加を許可するプロジェクトのロールが必要です。

  • プロジェクトは、プロジェクトの設定 > マージリクエストで設定されているマージメソッド Merge Commitを使用する必要があります。

    GitLab 16.9以降では、早送りされたコミットをGitLab UIから元に戻すことができます。ただし、以下のいずれかに該当する場合に限ります:

    • コミットがスカッシュされている、または
    • マージリクエストに単一のコミットが含まれている。

詳細については、イシュー22236を参照してください。

マージリクエストExampleをリバートするには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 左サイドバーで、コード > マージリクエストを選択します。
  3. セカンダリメニューからマージ済みを選択し、マージリクエストを選択します(ここではExample)。
  4. マージリクエストのレポート領域までスクロールし、マージしたユーザーの情報を示すレポートを見つけます。
  5. Revertを選択します。
  6. ブランチでRevertで、変更をリバートするブランチを選択します。
  7. マージリクエストなしですぐにリバートするには:
    1. 新しいマージリクエストを作成をクリアします。
    2. Revertを選択すると、Exampleのリバートが完了します。
  8. すぐにリバートせずに、新しいマージリクエストでリバートを確認するには、新しいマージリクエストを開始を選択した後、以下を実行します。
    1. リバートするマージリクエストのフィールドに入力し、マージリクエストを作成を選択します。
    2. マージリクエストがマージされると、Exampleのリバートが完了します。

コミットをリバートする

リポジトリ内のコミットは、次のいずれかにリバートできます。

  • 現在のブランチ。
  • 新しいマージリクエスト。

前提条件:

  • プロジェクトのロールは、マージリクエストを編集し、コードをリポジトリに追加する権限を持っている必要があります。
  • この場合、Revertオプションは表示されないため、コミットがまだリバートされていない必要があります。

これを行うには、次の手順を実行します:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. コミットを含むマージリクエストがわかっている場合:
    1. 左サイドバーで、コード > マージリクエストを選択し、目的のマージリクエストを選択します。
    2. コミットを選択し、リバートするコミットのタイトルを選択します。これにより、マージリクエストのコンテキストにコミットが表示されます。
    3. GitLabは、コミット00001111を表示していますというメッセージをセカンダリメニューの下に表示します。00001111はコミットのハッシュです。コミットハッシュを選択して、コミットのページを表示します。
  3. コミットの元のマージリクエストが不明な場合:
    1. 左側のサイドバーで、コード > コミットを選択します。
    2. コミットのタイトルを選択し、コミットに関する完全な情報を表示します。
  4. 右上隅で、オプションを選択し、Revertを選択します。
  5. ブランチでRevertで、変更をリバートするブランチを選択します。
  6. マージリクエストなしですぐにリバートするには:
    1. 新しいマージリクエストを作成をクリアします。
    2. Revertを選択します。
  7. すぐにリバートせずに、新しいマージリクエストでリバートを確認するには、新しいマージリクエストを開始を選択した後、以下を実行します。
    1. リバートするマージリクエストのフィールドに入力し、マージリクエストを作成を選択します。
    2. マージリクエストがマージされると、コミットのリバートが完了します。

マージコミットを別の親コミットにリバートする

マージコミットをリバートすると、マージ先のブランチ(多くの場合、main)が常に最初の親になります。マージコミットを別の親コミットに戻すには、コマンドラインからそのコミットを元に戻す必要があります。Gitで変更を元に戻すを参照してください。

リポジトリからテキストを削除する

リポジトリからテキストを削除する方法やその他のデータ削除手法については、リポジトリサイズを参照してください。