# Single repository recovery

**GitProtect enables single repository recovery for Bitbucket DC, allowing restoration of an individual repository together with its complete Git history, branches, tags, and supported metadata. The recovery process maintains repository integrity while ensuring that other projects and repositories within the Bitbucket DC instance remain unaffected.**

***

## Recovery process

The following steps demonstrate how to quickly restore a single **Bitbucket DC** repository using **GitProtect Management Service**.

{% stepper %}
{% step %}
Get into the restore view using the following method:

1. Open the **Bitbucket** tab (**DevOps** > **Bitbucket**), then click the **Explore** button next to the organization whose backup you want to restore (explore <img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FlznOQewoKxgR6fVymPw3%2Fimage.png?alt=media&#x26;token=ae42e612-0146-41f9-a50f-6977b4a70609" alt="" data-size="original"> icon in list view).
2. Search for the repository you want to restore, then click the restore ![](https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F579nNSK9YQ7jE5lg7wHH%2Fimage.png?alt=media\&token=81351588-9730-4e41-ac66-635324ca58d5) icon in the action menu of that repository.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FsF0MFJyniV4xQb227Krw%2Fimage.png?alt=media&#x26;token=c0eb2c1d-0c72-444e-9b53-d3562128897a" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select the backup plan from which you want to restore data. Click the drop-down under **Backup plans** section and choose one of the plans from the list.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FSZDIhGA4VfV62FhFsj6z%2Fimage.png?alt=media&#x26;token=ecb28386-6006-45a9-9116-694a3e8bde94" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Choose the backup version from all the backups that have already been performed — select the desired date and click the **Restore** button.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FtZaJ4DBAttdGZwTfAxmU%2Fimage.png?alt=media&#x26;token=bee6d563-97ce-4851-8d63-9524579e06db" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select the data available to restore and click **Restore selected** or **Restore all** to proceed.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FmqowBuKywcY7DijR8jPT%2Fimage.png?alt=media&#x26;token=33425076-2b88-44b1-90cb-b28765bdc145" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select the destination for the recovery and click **Next**.

{% hint style="info" %}
You can choose any device or organization registered in **GitProtect** (you can find more information about cross-recovery in **Useful links and items section**).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FRhZjRtjhmxkXm1E3TfgA%2Fimage.png?alt=media&#x26;token=c2e50da3-ac97-409a-af13-c9d7577bf1be" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
In the **Data to restore** section at the top, you can select which of the previously chosen available data you want to restore.

{% hint style="success" %}
**GitProtect** allows you to select specific metadata to restore — **each element can be included or excluded by toggling the switch next to it**.
{% endhint %}

{% hint style="warning" %}
If an item cannot be restored to the selected **Git** platform, it will be marked with an orange dot.
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F57bQcobRyA6DrOEQhh1t%2Fimage.png?alt=media&#x26;token=dc65fbee-3e7e-4db3-96de-94c94d240e91" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
In the **Restore to** section, you can change the previously selected recovery destination if needed.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FjCcfHi6RVGPtc18FnCc3%2Fimage.png?alt=media&#x26;token=9ba8945f-eceb-4461-8f71-c210ce2e5718" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
In the **Throttling prevention** section, you can add additional **DevOps** organization accounts to avoid throttling.

{% hint style="warning" %}
To use additional organization accounts, you must first add them in the organization settings (organization view > **Edit**).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FwsKGm3OLihj4ILWd5Kyw%2Fimage.png?alt=media&#x26;token=77c943ed-8472-431c-b8f9-bf4d108b93aa" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Configure the recovery destination settings, depending on where the backup will be restored.

#### Restore to a Git organization:

1. Select the target organization, then select or create a new project (where applicable).
2. In **Restore settings**, you can set a unique, custom name for the repository (or use the custom name automatically generated by **GitProtect**).

{% hint style="success" %}
Restoring never overwrites existing repositories in the organization — if you do not set a new name for the restored repository, it keeps its original name with an automatically generated suffix.
{% endhint %}

{% hint style="danger" %}
When you set a custom name for the repository, and a repository with that name already exists in the specified organization, **the recovery will fail**.
{% endhint %}

3. If you are restoring your repository to a different **Git** organization than the original (for example, **GitHub**), in addition to setting a custom name, you can choose whether to add a label to the restored elements and whether to enable pipelines (where applicable).
4. Check which agent is set as the default for recovery and change it if necessary.
5. If needed, you can also adjust the bandwidth.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FNrIpolvA0OnpYfJc4R24%2Fimage.png?alt=media&#x26;token=db74270f-a572-4022-8cd8-cd53e29d4135" alt=""><figcaption></figcaption></figure>

#### Restore to a device:

{% hint style="warning" %}
To restore a repository to a local device, you must have a **Git** client and the **GitProtect** worker installed on that device (you can find more information about workers in **Useful links and items** section).
{% endhint %}

{% hint style="danger" %}
You can restore **only the repository** (without metadata) when restoring data to local resources.
{% endhint %}

1. Select the destination device (a registered device).
2. Make sure the device where you want to restore data has the **Git** client added to the PATH environment variable. The PATH variable is usually configured automatically after **Git** installation (a system restart may be required) — if it isn’t, you will have to configure it manually.

{% hint style="info" %}
To configure the PATH variable in **Windows**, open the environment variables, select the PATH variable, and click the **Edit** button. Copy the path to the git.exe file and add it to the PATH variable.
{% endhint %}

3. Specify the restoration directory and configure other options (for example, whether to overwrite existing data or reduce bandwidth). If needed, you can create a new restoration folder on the selected drive from the **Management Service** level.

<figure><img src="broken-reference" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
After defining all parameters, click the **Restore** button to begin the recovery process. When the process is complete, a new repository/folder will be created in your organization/on your device. You can monitor the restoration process in the **Tasks** tab.
{% endstep %}
{% endstepper %}

***

## Useful links and items

{% content-ref url="../../../../deployment-and-configuration/gitprotect-worker" %}
[gitprotect-worker](https://helpcenter.gitprotect.io/deployment-and-configuration/gitprotect-worker)
{% endcontent-ref %}

{% content-ref url="../../general/cross-recovery-for-devops-organizations" %}
[cross-recovery-for-devops-organizations](https://helpcenter.gitprotect.io/backup-and-recovery/devops/general/cross-recovery-for-devops-organizations)
{% endcontent-ref %}

{% content-ref url="../../general/lfs-recovery-for-devops-organizations" %}
[lfs-recovery-for-devops-organizations](https://helpcenter.gitprotect.io/backup-and-recovery/devops/general/lfs-recovery-for-devops-organizations)
{% endcontent-ref %}

{% content-ref url="../../general/wiki-recovery-for-devops-organizations" %}
[wiki-recovery-for-devops-organizations](https://helpcenter.gitprotect.io/backup-and-recovery/devops/general/wiki-recovery-for-devops-organizations)
{% endcontent-ref %}

{% content-ref url="../../../../risk-and-compliance-management/throttling-prevention" %}
[throttling-prevention](https://helpcenter.gitprotect.io/risk-and-compliance-management/throttling-prevention)
{% endcontent-ref %}
