# Przywracanie pojedynczego repozytorium

## Proces przywracania

{% stepper %}
{% step %}
Przejdź do **widoku przywracania**, używając poniższej metody:

1. Otwórz kartę **GitHub** (**DevOps** > **GitHub**), a następnie kliknij przycisk **Przywróć** obok organizacji, której backup chcesz przywrócić.

{% hint style="success" %}
Możesz również użyć przycisku **Przeglądaj** aby przywrócić dane
{% endhint %}

2. Wyszukaj repozytorium, które chcesz przywrócić i kliknij przycisk **Przywróć** w **Menu akcji** tego repozytorium.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FtwfelvOuf2uQdIubzMUR%2Fimage.png?alt=media&#x26;token=69295339-a2fb-4098-bbcb-2078957a7942" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Następnie wybierz **plan backupu**, z którego chcesz przywrócić dane. Kliknij **Wyświetl** **dostępne plany** i wybierz jeden z planów z listy.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FxXGnTvEg50VWumpUFmpG%2Fimage.png?alt=media&#x26;token=74c59848-2388-4a57-adcd-41e31515787c" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Wybierz wersję backupu spośród wszystkich dotychczas wykonanych backupów — wybierz żądaną datę i kliknij przycisk **Przywróć**.

{% hint style="success" %}
**Xopero ONE** umożliwia **wybranie określonych metadanych** do przywrócenia — każdy element można uwzględnić lub wykluczyć, przełączając **przełącznik** obok niego. Dodatkowo, poniżej tych ustawień znajduje się opcja przywracania **Wiki**. Jeśli Twoje repozytorium już istnieje w **GitHub**, możesz wybrać przywrócenie tylko **Wiki**.
{% endhint %}

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FNYhTVnrmHgBv7vF4pZ4Q%2Fimage.png?alt=media&#x26;token=dc0e45de-ef87-47f1-a76a-66c27cb97148" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Wybierz miejsce docelowe dla procesu przywracania. Możesz wybrać jedną z przypisanych organizacji z dowolnej usługi **Git** lub dowolne urządzenie. Po wybraniu **repozytorium** i **metadanych**, które chcesz uwzględnić, kliknij przycisk **Przywróć wybrane** lub **Przywróć wszystko**, aby kontynuować.
{% endstep %}

{% step %}
W następnym panelu kliknij **Edytuj** obok **Dane do przywrócenia** jeśli chcesz je dostosować.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FXVUdShEfsQtAP5Ul4vr6%2Fimage.png?alt=media&#x26;token=c9efcfc2-fe45-4716-af1b-4ed84fb0a9fa" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Następnie wybierz **miejsce docelowe**, do którego chcesz przywrócić dane.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FgghdgihEXVgdjUvbcXDP%2Fimage.png?alt=media&#x26;token=6404956c-f195-4a33-8466-ece9c97f945d" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %} <mark style="color:red;">**Wsparcie dla tworzenia kopii zapasowych projektów (klasycznych) zostało usunięte.**</mark> Funkcja ta jest obecnie dostępna wyłącznie w celu przywracania wcześniej zabezpieczonych **projektów** (**klasycznych**) — po przywróceniu **projekty** (**klasyczne**) są **automatycznie konwertowane na projekty v2**.
{% endhint %}

#### A. Przywracanie do organizacji Git

{% hint style="info" %}
Podczas przywracania do serwisu **GitHub**, dostępna jest opcja **Użyj istniejących projektów zamiast tworzyć nowe (Use existing projects instead of creating new ones)**. W przypadku przywracania **projektów v2** opcja ta przywraca dane do istniejących projektów, zamiast tworzyć nowe.
{% endhint %}

W **Ustawieniach przywracania** możesz ustawić własną nazwę dla repozytorium, które zostanie utworzone podczas procesu przywracania i ograniczyć przepustowość łącza.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2Fn71i2rYHQ5pWMG1ZX5FG%2Fimage.png?alt=media&#x26;token=44d55074-f098-4953-8c85-877377542cb9" alt=""><figcaption></figcaption></figure>

Możesz wprowadzić nową nazwę repozytorium w jednym z następujących formatów:

1. Jeśli wprowadzisz `organizacja/nazwa` (np. `xsupport/test`), repozytorium zostanie przywrócone z wybraną nazwą w określonej organizacji. Jeśli wprowadzona organizacja nie istnieje, repozytorium zostanie przywrócone do **organizacji źródłowej**.
2. Jeśli wprowadzisz tylko **nazwę repozytorium** (np. `test`) i **organizacja źródłowa** jest zarejestrowana w **Xopero** **ONE**, repozytorium zostanie tam przywrócone. Jeśli organizacja **nie jest** zarejestrowana, repozytorium zostanie przywrócone na **Twoje** **konto**.&#x20;

{% hint style="danger" %}
Odtwarzanie danych nigdy nie nadpisuje istniejących repozytoriów w organizacji — jeśli nie wybierzesz nazwy repozytorium lub wprowadzisz nazwę, która już istnieje w twojej organizacji, **proces przywracania zakończy się niepowodzeniem**. Aby pomyślnie ukończyć odtwarzanie, musisz wybrać unikalną nazwę repozytorium lub zaznaczyć opcję **Dodaj sufiks do nazwy repozytorium**, dzięki której przywrócone repozytorium zachowa swoją oryginalną nazwę z automatycznie wygenerowanym przyrostkiem.
{% endhint %}

#### B. Przywracanie na urządzenie

{% hint style="warning" %}
Aby przywrócić repozytorium na komputer lokalny, musisz mieć zainstalowanego **klienta Git** na tym urządzeniu.
{% endhint %}

{% hint style="danger" %}
Możesz przywrócić <mark style="color:$danger;">**tylko repozytorium**</mark> (bez metadanych) podczas przywracania danych do zasobów lokalnych.
{% endhint %}

1. Wybierz **urządzenie docelowe**.
2. Upewnij się, że na urządzeniu, na którym chcesz przywrócić dane, jest zainstalowany agent **Xopero ONE** i dodany **klient Git** do zmiennej środowiskowej **PATH**. Zmienna **PATH** jest zwykle konfigurowana automatycznie po instalacji **Git** (może być wymagane ponowne uruchomienie systemu). Jeśli tak nie jest, ustaw ją ręcznie na ścieżkę do pliku **git.exe**: `C:\Program Files\Git\bin\git.exe`

{% hint style="info" %}
Aby skonfigurować zmienną środowiskową **PATH**, otwórz zmienne środowiskowe, wybierz zmienną **PATH** i kliknij przycisk **Edytuj**. Skopiuj ścieżkę do pliku **git.exe** i dodaj ją do zmiennej **PATH**.
{% endhint %}

3. Wybierz katalog, do którego mają zostać przywrócone dane.

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FBemVKFZ1Vs7BjdCp7Puj%2Fimage.png?alt=media&#x26;token=20b04c78-d7f1-4fb6-89b7-c7ae0996d0af" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Jeśli w wybranym folderze już istnieje repozytorium, możesz **wybrać nadpisanie** istniejących danych.
{% endhint %}
{% endstep %}

{% step %}
W sekcji **Domyślny worker** wybierz **zasób** (urządzenie/worker), który będzie odpowiedzialny za wykonanie przywracania (jeśli przywracasz dane na urządzenie, workera musisz wybrać we wcześniejszych krokach).

<figure><img src="https://1873867500-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwg6DDqlTFok8F9zv6rqa%2Fuploads%2FPG82Kf4OWrrlbJR3o0uW%2Fimage.png?alt=media&#x26;token=6d4fc639-6a23-4331-8d92-c6f236dd16ce" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Po zdefiniowaniu wszystkich parametrów kliknij przycisk **Przywróć,** aby rozpocząć proces przywracania. Po zakończeniu procesu na koncie Twojej organizacji zostanie utworzone nowe repozytorium.

{% hint style="warning" %}
**Zamknięte** lub [**scalone** ](#user-content-fn-1)[^1]pull requests są przywracane jako [**zamknięte issues**](#user-content-fn-2)[^2].
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Czas trwania przywracania

Obszerne testy i analizy wykazały, że przywracanie repozytoriów z **dużą liczbą Issues i Pull Requests** znacząco wydłuża proces przywracania. To opóźnienie jest spowodowane ograniczeniami w infrastrukturze **GitHub** i **API** używanym do przywracania repozytoriów.

Aby przyspieszyć dostęp do repozytorium, zaleca się **wykluczenie Issues i Pull Requests** podczas wstępnego przywracania. Po przywróceniu repozytorium można wykonać **kolejne przywracanie** — tym razem uwzględniające **Issues i Pull Requests** — pod inną nazwą repozytorium. Takie podejście zapewnia szybki dostęp, jednocześnie umożliwiając pełne przywrócenie zawartości repozytorium.

***

## Przydatne linki i materiały

{% content-ref url="../../../../wdrozenie-i-konfiguracja/xopero-one-agent" %}
[xopero-one-agent](https://helpcenter.xopero.com/xopero-one-en/pl/wdrozenie-i-konfiguracja/xopero-one-agent)
{% endcontent-ref %}

{% content-ref url="../../ogolne/cross-recovery-dla-organizacji-devops" %}
[cross-recovery-dla-organizacji-devops](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/devops/ogolne/cross-recovery-dla-organizacji-devops)
{% endcontent-ref %}

{% content-ref url="../../ogolne/przywracanie-lfs-dla-organizacji-devops" %}
[przywracanie-lfs-dla-organizacji-devops](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/devops/ogolne/przywracanie-lfs-dla-organizacji-devops)
{% endcontent-ref %}

{% content-ref url="../../ogolne/przywracanie-wiki-dla-organizacji-devops" %}
[przywracanie-wiki-dla-organizacji-devops](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/devops/ogolne/przywracanie-wiki-dla-organizacji-devops)
{% endcontent-ref %}

{% content-ref url="../../../../zarzadzanie-ryzykiem-i-zgodnoscia/zapobieganie-ograniczeniom-zadan" %}
[zapobieganie-ograniczeniom-zadan](https://helpcenter.xopero.com/xopero-one-en/pl/zarzadzanie-ryzykiem-i-zgodnoscia/zapobieganie-ograniczeniom-zadan)
{% endcontent-ref %}

[^1]: merged

[^2]: closed issues
