# Process overview

## General information

**GitProtect** is designed to protect **DevOps** ecosystems, including **GitHub**.

To ensure your entire **GitHub** environment is reliably backed up, make sure to include all repositories along with their related metadata — the best practice is to create a backup plan for critical repositories and metadata that change daily (or even more frequently), for example, using the recommended **Grandfather-Father-Son** (**GFS**) rotation scheme.

Additionally, create a separate backup plan for unused repositories that you need to keep for future reference. This type of backup primarily serves **GitHub** archival purposes, and with unlimited retention, you can store your copies for as long as needed — even indefinitely.

You can also delete repositories from your **GitHub** account while keeping a copy in storage, which helps bypass **GitHub** limits.

***

## Backup type

**Incremental** and **differential backups** help save storage space. In **GitProtect** you can define different retention and performance settings for each type of backup (**full**, **incremental**, and **differential**). For example, our software allows you to include only the parts of **GitHub** data that have changed since the last backup, reducing storage usage, speeding up the process, and limiting bandwidth.

***

## Adding multiple storage instances

Use different types of storage to replicate backups, minimize the risk of outages or disasters, and comply with the **3-2-1 backup rule** (which means having at least **three copies** of your data on **two different storage types**, with at least **one copy** stored in the cloud).

**GitProtect** is a multi-storage system that allows you to store your data:

* [x] In the cloud (**Xopero Cloud Storage**, **AWS S3**, **Wasabi Cloud**, **Backblaze B2**, **Google Cloud Storage**, **Azure Blob Storage**, or any **S3**-compatible public cloud).
* [x] Locally (**NFS**, **CIFS**, **SMB** network shares, or local disk resources).
* [x] In a hybrid or multi-cloud environment.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://helpcenter.gitprotect.io/backup-and-recovery/devops/github/backup/process-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
