> ## Documentation Index
> Fetch the complete documentation index at: https://docs.diversion.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 過去を変更する

> 以前のコミットを取り消したり、チェリーピックしたり、編集したり、詳細をコピーする方法

## コミットを取り消す

コミットしたけれど、しなければよかったと思っていますか? 心配ありません。`revert` で以前のコミットを取り消せます。これは、取り消したいコミットの反対の変更を生成します。

<Steps>
  <Step title="リポジトリの履歴に移動">
    変更のあるリポジトリのワークスペースを開きます。保留中の変更がないことを確認してください。左のナビゲーションレールで **Commits** をクリックします。
  </Step>

  <Step title="revert するコミットを選択">
    取り消したいコミットの隣のメニューアイコンをクリックし、「Undo this commit」を選択します。モーダルウィンドウで「Undo changes」をクリックします。マージ競合を解決する必要があるかもしれません。以下を参照してください。

    <img src="https://mintcdn.com/diversion-2/byT8FECKa2zLvaOH/images/revert-undo-commit.png?fit=max&auto=format&n=byT8FECKa2zLvaOH&q=85&s=2aa60123406a6e60fceab79b9a06f14f" alt="コミットを取り消す" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="976" height="604" data-path="images/revert-undo-commit.png" />
  </Step>

  <Step title="結果を確認">
    ワークスペースに、コミットの変更を取り消す新しい変更が表示されます。

    この例では、以下が私が取り消したコミットです:

    <img src="https://mintcdn.com/diversion-2/tgHOXPild1lTdU_m/images/example-commit-reverted.png?fit=max&auto=format&n=tgHOXPild1lTdU_m&q=85&s=56ccd60b429413db16682e93fd9cff04" alt="Revert されたコミット" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="615" height="229" data-path="images/example-commit-reverted.png" />

    そしてこれがワークスペースでの結果として得られた変更です:

    <img src="https://mintcdn.com/diversion-2/hNFKL35i0RPRSCiK/images/example-commit-reverted-outcome.png?fit=max&auto=format&n=hNFKL35i0RPRSCiK&q=85&s=f1dbfc42051208148c0cc9c11bb05e38" alt="コミット revert 後のワークスペース" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="730" height="290" data-path="images/example-commit-reverted-outcome.png" />
  </Step>

  <Step title="マージ競合を解決?">
    後のコミットでも変更されたファイルに影響を与えるコミットを revert しようとすると、マージ競合が発生します。変更をコミットする前に競合を解決する必要があります。

    先ほどは編集されたファイルを revert しました。今度は、より早いコミット (ファイルが作成されたコミット) を revert してみます。

    <img src="https://mintcdn.com/diversion-2/tgHOXPild1lTdU_m/images/example-commit-reverted-with-merge.png?fit=max&auto=format&n=tgHOXPild1lTdU_m&q=85&s=e67cdb4f2429db60c88cac7349abdc9c" alt="コミット revert 後のワークスペース" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="586" height="488" data-path="images/example-commit-reverted-with-merge.png" />

    これによりマージ競合が発生し、変更をコミットする前に解決する必要があります。

    <img src="https://mintcdn.com/diversion-2/tgHOXPild1lTdU_m/images/example-commit-reverted-with-merge-outcome.png?fit=max&auto=format&n=tgHOXPild1lTdU_m&q=85&s=579ec843f81ebc7463ad7444370c02b0" alt="コミット revert 後のワークスペース" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="1754" height="587" data-path="images/example-commit-reverted-with-merge-outcome.png" />
  </Step>
</Steps>

## コミットメッセージを編集する

コミットメッセージにタイプミスがあった、あるいは詳細を追加したい場合、Commits ビューから自分が作成したコミットのメッセージを直接編集できます。

<Note>
  コミットメッセージの編集はコミット作者のみが利用可能で、Git と同期しているリポジトリではサポートされません。
</Note>

<Steps>
  <Step title="コミットメニューを開く">
    Commits ビューで、メッセージを変更したいコミットの隣のメニューアイコンをクリックし、「Edit commit message」を選択します。

    <img src="https://mintcdn.com/diversion-2/byT8FECKa2zLvaOH/images/edit-commit-message-menu.png?fit=max&auto=format&n=byT8FECKa2zLvaOH&q=85&s=9e7b82d5937c06fdbd0b01b223714c2e" alt="Edit commit message メニューオプション" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="976" height="604" data-path="images/edit-commit-message-menu.png" />
  </Step>

  <Step title="メッセージを更新">
    「Edit commit message」ダイアログが表示され、参照用のコミット ID と現在のメッセージが入ったテキストエリアが表示されます。メッセージを好きなように編集し、「Update」をクリックして保存します。

    <img src="https://mintcdn.com/diversion-2/TRW0X-dHr9C3-PTk/images/edit-commit-message-dialog.png?fit=max&auto=format&n=TRW0X-dHr9C3-PTk&q=85&s=bbe6bdcf50d0a813bf1b6b85dd76739a" alt="Edit commit message ダイアログ" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="798" height="437" data-path="images/edit-commit-message-dialog.png" />
  </Step>
</Steps>

## コミットをチェリーピックする

チェリーピックを使うと、履歴から特定のコミットを取り出し、その変更を現在のワークスペースに再適用できます。ブランチ全体をマージすることなく、特定の変更だけを取り込みたい場合に便利です。

チェリーピックの前に、ワークスペースにコミットされていない変更がない必要があります。リポジトリの最初のコミットに対してはチェリーピックは利用できません。

デスクトップアプリで:

<Steps>
  <Step title="Commits でコミットを見つける">
    Commits ビューを開き、チェリーピックしたいコミットを見つけます。
  </Step>

  <Step title="コミットをチェリーピック">
    コミットを右クリックし、「Cherry-pick into workspace」を選択します。

    <img src="https://mintcdn.com/diversion-2/byT8FECKa2zLvaOH/images/branching-and-merging-cherry-pick-menu.png?fit=max&auto=format&n=byT8FECKa2zLvaOH&q=85&s=f133a8591f95052b34093825c5db286a" alt="Cherry-pick コンテキストメニューオプション" width="976" height="604" data-path="images/branching-and-merging-cherry-pick-menu.png" />
  </Step>

  <Step title="必要に応じて競合を解決">
    チェリーピックした変更が現在のワークスペースと競合する場合、マージ競合解決ビューに移動します。解決の詳細については [マージ競合](/ja/basic/working-in-parallel#マージ競合) を参照してください。
  </Step>
</Steps>

CLI 経由については、詳細は [cherry-pick コマンド](/ja/cmd-ref/cherry-pick) を参照してください。

## コミットの詳細をコピーする

会話やスクリプトで特定のコミットを参照する必要があるでしょうか? Commits ビューから直接、コミットの ID またはメッセージをすばやくコピーできます。

<Steps>
  <Step title="コミット ID をコピー">
    Commits ビューで、コミットの隣のメニューアイコンをクリックし、「Copy commit ID」を選択します。ID はすぐにクリップボードにコピーされ、「Copied commit ID」通知でそれが確認できます。

    <img src="https://mintcdn.com/diversion-2/byT8FECKa2zLvaOH/images/copy-commit-id-menu.png?fit=max&auto=format&n=byT8FECKa2zLvaOH&q=85&s=1fa0da937b32ec8e189ad07cd11383e5" alt="Copy commit ID メニューオプション" style={{width: '90%', borderRadius: '1.5rem', border: '.3rem solid #555', boxShadow: '0 0 1rem #888' }} width="976" height="604" data-path="images/copy-commit-id-menu.png" />
  </Step>

  <Step title="コミットメッセージをコピー">
    同様に、同じメニューから「Copy commit message」を選択して、コミットメッセージ全文をクリップボードにコピーできます。
  </Step>
</Steps>
