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

# Gitディザスタリカバリ

> Replitの自動バックアップシステムを使用してGit履歴とコードを回復する方法について説明します。

Replitは、`.git`フォルダの破損やコミット履歴の消失などの問題から回復できるよう、Gitリポジトリを自動的にバックアップします。このバックアップシステムはバックグラウンドで動作するため、特別な作業なしに作業内容が保護されます。

## 仕組み

すべてのReplit AppはGitリポジトリの安全なバックアップを維持しています。Replit AgentがコードへHに変更を加えたり、アプリをデプロイしたりすると、変更は自動的にこのバックアップに同期されます。ローカルのGitリポジトリが破損または使用不能になった場合、バックアップから完全なコミット履歴を復元できます。

<Info>
  バックアップのリモートは`gitsafe-backup`という名前で、Replitが自動的に管理しています。何も設定する必要はありません。すでにバックグラウンドで動作しています。
</Info>

## バックアップ履歴の表示

コミット履歴を表示する最も簡単な方法は、[Gitペイン](/references/workspace-tools/git-interface)を使うことです。プロジェクトエディターのToolsセクションから開くと、すべてのAgentチェックポイントを含む完全なコミット履歴が表示されます。これはほとんどの場合に使用できる方法で、コマンドは不要です。

gitsafe-backupリモートを直接確認する必要がある場合は、Shellを使用できます：

```bash theme={null}
git fetch gitsafe-backup main
git log gitsafe-backup/main
```

これにより、すべてのAgentチェックポイントと手動コミットを含む完全なコミット履歴が表示されます。作業がバックアップされているか確認したり、復元する特定のコミットを見つけるのに使用できます。

## Gitの問題からの回復

Gitエラーが発生したりリポジトリが破損した場合は、まず[Gitペイン](/references/workspace-tools/git-interface)を試してください。以前のコミットへのリセットやリモートからのプルなど、Shellコマンドを使わずにほとんどの一般的な問題を解決できます。

Gitペインでは対処できない場合（`.git`フォルダが完全に破損している場合など）は、以下のShellベースの手順を使用してください。

### バックアップが利用可能か確認する

まず、バックアップリモートが存在することを確認します：

```bash theme={null}
git remote -v
```

出力に`gitsafe-backup`があれば、回復を進めることができます。

### リポジトリを復元する

<Warning>
  このプロセスは現在の`.git`フォルダをバックアップ版に置き換えます。作業ファイルは変更されませんが、ローカルのGit履歴はバックアップのものに置き換えられます。
</Warning>

<Steps>
  <Step title="現在のGit設定を保存する">
    カスタム設定がある場合に備えて、Git設定ファイルをバックアップします：

    ```bash theme={null}
    cp .git/config .git_config_backup
    ```
  </Step>

  <Step title="バックアップリポジトリをクローンする">
    バックアップから一時的なクローンを作成します：

    ```bash theme={null}
    git clone --bare git://gitsafe:5418/backup.git /tmp/gitsafe-restore
    ```
  </Step>

  <Step title="Gitフォルダを置き換える">
    破損した`.git`フォルダを別の場所に移動し、バックアップで置き換えます：

    ```bash theme={null}
    mv .git .git_corrupted_backup
    mv /tmp/gitsafe-restore/ .git
    ```
  </Step>

  <Step title="設定を復元する">
    Git設定をコピーして戻します：

    ```bash theme={null}
    mv .git_config_backup .git/config
    ```
  </Step>
</Steps>

これらの手順が完了したら、`git status`を実行してリポジトリが正常に動作していることを確認します。

## 一般的な問題のトラブルシューティング

### 「fatal: repository not found」またはバックアップリモートが見つからない

バックアップシステムは古いプロジェクトでは有効になっていない場合があります。古いプロジェクトの回復にサポートが必要な場合は、サポートにお問い合わせください。

### 最近のコミットが回復に含まれていない

バックアップはAgentのコミットごとに同期されます。変更を加えたがコミットしていない場合、その変更はバックアップに含まれません。コミットされていないファイルがないか作業ディレクトリを確認してください。

### Git操作が遅い、または応答しない

Git操作が応答しなくなった場合、古いロックファイルがある可能性があります。安全に削除できます：

```bash theme={null}
rm -f .git/index.lock
```

## データ損失の防止

バックアップシステムはGit履歴を自動的に保護しますが、作業をさらに保護するために追加の対策を取ることができます：

* **こまめにコミットする**：進捗が継続的にバックアップされるよう、小さく頻繁なコミットを行う
* **チェックポイントを活用する**：[Replit Agent](/references/agent/overview)を使って作業する場合、チェックポイントが重要なマイルストーンで自動的にコミットを作成する
* **GitHubに接続する**：重要なプロジェクトには、[アプリをGitHubに接続](/build/import-from-providers)して追加のバックアップ層を設ける

## 次のステップ

Replitのバージョン管理についてさらに学ぶには：

* [バージョン管理の概要](/learn/projects-and-artifacts/version-control)：すべてのバージョン管理オプションについて学ぶ
* [Gitペインの使い方](/references/workspace-tools/git-interface)：コマンドラインなしでGitを視覚的に管理する
* [チェックポイントとロールバック](/references/version-control/checkpoints-and-rollbacks)：Agentチェックポイントの仕組みを理解する
