> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/cs/znalostni-baze/040-git-integration.md).

# Integrace Gitu

**Gitová integrace Overleafu** je [prémiová funkce](/latex/cs/znalostni-baze/120-overleaf-premium-features.md). Prémiové funkce Overleaf jsou k dispozici účastníkům v [Overleaf Commons](https://www.overleaf.com/for/universities), členům skupiny [předplatných](https://www.overleaf.com/for/groups), a vlastníkům individuálních [předplatných](https://www.overleaf.com/user/subscription/plans). Gitová integrace je k dispozici v Overleaf Cloud a Overleaf Server Pro (verze 4.0 a novější).

### Co je Gitová integrace Overleafu?

Gitová integrace Overleafu vám umožňuje získat z vašeho projektu v Overleafu Git URL a zacházet s ním jako s vzdáleným Git repozitářem (repo). Můžete naklonovat svůj projekt do lokálního Git repozitáře a pracovat na něm lokálně, odesílat změny do projektu z lokálního počítače a stahovat aktualizace, které probíhají v online editoru Overleafu, do svého lokálního repozitáře.

To vám umožňuje pracovat na projektu lokálně v době, kdy není možné pracovat online, používat při práci na projektu v Overleafu jiný místní editor podle vlastního výběru nebo snadno přidávat výstupy z jiného lokálního softwaru do svého projektu v Overleafu.

Git URL a příkaz pro klonování svého projektu můžete získat z možnosti Git v nabídce vašeho projektu v Overleafu.

![Nabídka projektu git.png](/files/8da2550c0881216a1302e3286b2354d8a5e36931)

### Jak se autentizovat při použití Gitové integrace

Když provedete Git operaci, jako je clone, pull nebo push do vzdáleného projektu v Overleafu, budete vyzváni k autentizaci.

Chcete-li přistupovat ke svému projektu v Overleafu z Gitu, musíte použít autentizaci založenou na tokenech Overleafu. Podrobné pokyny najdete zde: [Autentizace založená na tokenech](/latex/cs/znalostni-baze/042-git-integration-authentication-tokens.md).

### Klonování projektu jako lokálního repozitáře

Z [**Menu**](/latex/cs/znalostni-baze/148-using-the-overleaf-project-menu.md) ve svém projektu můžete v možnostech synchronizace vybrat Git. Tím se zobrazí dialog s `git clone` příkazem, který se má použít při vytváření vašeho lokálního repozitáře.

![Nabídka projektu git.png](/files/8da2550c0881216a1302e3286b2354d8a5e36931)

Alternativně můžete Git URL najít z URL projektu (URL v adresním řádku prohlížeče, když jste v projektu).

#### Overleaf Cloud

Pokud používáte Overleaf Cloud a URL vašeho projektu v Overleafu vypadá takto:

```
https://www.overleaf.com/project/1234567
```

Pak Git URL, kterou použijete ke klonování projektu, bude

```
https://git.overleaf.com/1234567
```

A příkaz použitý ke klonování projektu do lokálního Git repozitáře bude:

```
git clone https://git.overleaf.com/1234567
```

**Poznámka**: můžete být vyzváni k zadání uživatelského jména a hesla. Podívejte se prosím na [autentizaci heslem pro Git integraci](/latex/cs/znalostni-baze/043-git-integration-password-based-authentication.md)

#### Overleaf Server Pro (verze 4.0 nebo novější)

**Poznámka**: Integrace Git-bridge není v Server Pro ve výchozím nastavení povolena. Podívejte se prosím do našeho [Git Integrace](https://github.com/overleaf/overleaf/wiki/Git-Integration) průvodce, kde najdete pokyny, jak ji povolit.

Pokud používáte Overleaf Server Pro a URL vašeho projektu vypadá takto:

```
https://<SHARELATEX_SITE_URL>/project/1234567
```

Pak Git URL použité při klonování projektu bude:

```
https://git@<SHARELATEX_SITE_URL>/git/1234567
```

A příkaz použitý ke klonování projektu do lokálního Git repozitáře pomocí příkazové řádky Git bude:

```
git clone git@<SHARELATEX_SITE_URL>/git/1234567
```

**Poznámka**: Může být vyžadováno zadání hesla. Podívejte se prosím na: [autentizační tokeny pro Git integraci](/latex/cs/znalostni-baze/042-git-integration-authentication-tokens.md)

### Vytvoření projektu v Overleafu z existujícího Git repozitáře

Pokud máte existující repozitář, můžete přidat projekt v Overleafu jako vzdálený repozitář. Níže je několik příkazů, které budete muset spustit, abyste vše rozjeli. Upozorňujeme, že Overleaf podporuje pouze jednu lineární historii pro každý projekt. Gitová integrace toto omezení vynucuje tím, že omezuje počet větví na jednu. Tato jedna větev se v současnosti napevno jmenuje `master`.

1. Nejprve předpokládáme, že máte Git repozitář v počítači ve složce nazvané `my-paper`. (Může být také hostovaný na GitHubu, GitLabu nebo Bitbucketu atd., ale musíte jej mít také naklonovaný lokálně.)
2. Vytvořit [nový projekt](/latex/cs/znalostni-baze/031-creating-a-document-in-overleaf.md) v Overleafu. Protože veškerý obsah v projektu bude přepsán, použijte při vytváření tohoto projektu možnost projektu „Blank“ a smažte `main.tex` soubor v Overleafu.
3. Najděte Git URL pro projekt (viz [výše](#cloning-your-project-as-a-local-repository)).

   ![Git-bridge-url.png](/files/8267eedf3514a349e1d6ee42cc12cbc34d0339fa)
4. Přidejte Git URL projektu jako vzdálený repozitář ve svém lokálním projektu.

   ```
   $ cd my-paper
   $ git remote add overleaf <GIT-URL>
   ```

   (Ujistěte se, že používáte svůj vlastní odkaz, ne ukázkový odkaz.)
5. Stáhněte nejnovější obsah z projektu v Overleafu a sloučte jej se svou větví master.

   ```
   $ git checkout master
   $ git pull overleaf master --allow-unrelated-histories --rebase=false
   ```
6. Odešlete svůj projekt do Overleafu.

   ```
   $ git push overleaf master --set-upstream
   ```

   Pokud chcete lokálně používat jiný název větve, např. `my-branch`, můžete své změny odeslat pomocí aliasu:

   ```
   $ git push overleaf my-branch:master
   ```
7. Navštivte projekt v Overleafu. Vaše změny by tam měly být. (Možná budete muset otevřít nabídku projektu v Overleafu, abyste zjistili, který soubor byl nastaven jako hlavní dokument, a případně toto počáteční nastavení změnit.)

### Git commity a Gitová integrace Overleafu

Overleaf má interní [systém historie](/latex/cs/dalsi-temata/49-using-the-history-feature.md) který umožňuje současnou spolupráci v projektu v Overleafu. To není totéž co Git, takže Gitová integrace Overleafu je v podstatě převod z mechanismu historie a verzování Overleafu do Gitu. To umožňuje mnoho použití podporovaných Gitem, ale neumožňuje vám pracovat v Overleafu, jako by šlo o plnou implementaci Gitu.

#### Kdy se vytvářejí commity?

Když zadáte `pull` nebo `fetch` příkaz, a pokud pro aktuální stav projektu neexistuje žádný commit, nový commit se vytvoří dynamicky. Když `push` soubory z vašeho lokálního repozitáře do vzdáleného repozitáře Overleafu, commit se vytvoří také v tomto okamžiku a bude viditelný ve všech budoucích klonováních projektu Overleafu. Když vy nebo ostatní upravujete v Overleafu, commity se nebudou automaticky generovat, dokud to nebude potřeba.

#### Vynucování commitů

Pokud chcete v určitém bodě historie Overleafu vynutit vytvoření commitu, můžete to udělat [označením verze](/latex/cs/dalsi-temata/49-using-the-history-feature.md) v historii Overleafu. Označená verze získá vlastní hash commitu, i když hned neprovedete git pull. Commit z označení se vytvoří pouze tehdy, pokud od bodu historie Overleafu, který je označován, nevznikly žádné jiné novější commity.

#### Sledování autorství

Povaha commitů vytvářených „just in time“ v Gitové integraci Overleafu znamená, že pokud došlo před vytvořením commitu na straně Overleafu k více změnám, autor nejnovější změny bude uveden jako autor commitu.

Při práci se spoluautory je užitečné vytvořit po dokončení významné aktualizace každým spolupracovníkem štítek (čímž se vygeneruje commit) — tím vznikne sled commitů viditelný v Gitu, který nejlépe odpovídá změnám, které se dějí v Overleafu.

### Synchronizace s jiným vzdáleným repozitářem

Gitová integrace Overleafu umožňuje, aby váš projekt v Overleafu fungoval jako vzdálený repozitář pro lokální repozitáře. Možná ale budete chtít synchronizovat svůj projekt v Overleafu s jiným vzdáleným repozitářem hostovaným na GitHubu, GitLabu nebo jiné službě pro hostování Gitu.

Pokud synchronizujete svůj projekt s repozitářem hostovaným na GitHubu (<https://github.com/>), možná budete chtít použít přímou funkci Overleafu pro [synchronizaci s GitHubem](/latex/cs/znalostni-baze/044-github-synchronization.md)  .

Pokud synchronizujete svůj projekt s GitLabem, GitHub Enterprise nebo jiným hostitelem, můžete pomocí Gitové integrace Overleafu nastavit zprostředkující lokální repozitář.

Po dodržení výše uvedených pokynů pro [klonování vašeho projektu](#cloning-your-project-as-a-local-repository) nebo [propojení projektu s existujícím repozitářem](#creating-an-overleaf-project-from-an-existing-git-repository), budete mít lokální repozitář, který může odesílat/stahovat změny z Overleafu. Poté můžete do tohoto repozitáře přidat druhý vzdálený repozitář, který ukazuje na váš hostovaný repozitář. Váš lokální repozitář bude muset mít dva vzdálené repozitáře, aby ukazoval jak na váš Git hostitel, tak na projekt v Overleafu.

Ačkoli mezi projektem v Overleafu a vaším Git repozitářem nebude přímé spojení, umožní vám to udržovat je synchronizované.

![Git other remote.png](/files/56ff35cfd317e264e4df210a0fb4dadc6383b1e8)

### Přidání projektu v Overleafu jako Git submodulu

Každý projekt v Overleafu funguje jako samostatný Git repozitář, ale pokud chcete uspořádat několik takových projektů do jednoho Git repozitáře, můžete repozitář každého projektu přidat jako Git submodul obvyklým způsobem. Poté můžete každý repozitář submodulu samostatně pushovat a pullovat do/z Overleafu a přitom je mít stále seskupené jako submoduly ve větším projektu.

**Poznámka:** Ačkoli projekty v Overleafu mohou být submoduly v jiném repozitáři, samotné projekty v Overleafu nemohou obsahovat jiné submoduly.

### Známá omezení

**Větve**: Gitový systém Overleafu nepodporuje větvení.

**Symlinky**: Gitový systém Overleafu nepracuje dobře se symlinky. Symlink lze do projektu v Overleafu odeslat, ale bude převeden na běžný soubor a při příštím stažení projektu přepíše lokální symlink.

**Štítky**: Gitový systém Overleafu nepodporuje značkování.

**Oprávnění souborů**: Gitový systém Overleafu nezachovává oprávnění ke spuštění. Pro obejití tohoto omezení můžete ve svém lokálním klonu repozitáře spustit `git config core.fileMode false` Poté můžete znovu nastavit oprávnění ke spuštění u všech dotčených souborů. Tímto způsobem nebudou při následných Git operacích znovu měněna.

**Git LFS:** Projekty v Overleafu nepodporují Git Large File Storage.

**Git submoduly:** Projekty v Overleafu mohou fungovat jako Git submoduly v jiných repozitářích, ale nemohou obsahovat jiné Git submoduly. Pro odkazování na soubory z jiných projektů doporučujeme použít funkci [přidat z jiného projektu](/latex/cs/znalostni-baze/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md).

**Přejmenovávání složek**: Pokud uživatel přejmenuje složku a odešle změnu do Overleafu, projekt si ponechá prázdnou složku se starým názvem navíc k nové složce. (Například přejmenování images/ na img/ ponechá v projektu dvě složky: img/ obsahující soubory obrázků a images/, která bude prázdná. To může způsobit problémy, když uživatel přejmenuje složku a ve stejném commitu vytvoří nový soubor se stejným názvem jako měla stará složka. Gitový systém Overleafu tento commit odmítne. V takovém případě doporučujeme commit rozdělit na dvě části a odstranit zbylou složku.

**Přejmenovávání souborů a přesouvání souborů:** Přejmenování souboru ve vašem lokálním repozitáři se na straně Overleafu změní na smazání a vytvoření. To může vést ke ztrátě metadat spojených se souborem na straně Overleafu, což způsobí smazání sledovaných změn a komentářů. Nedoporučuje se přesouvat ani přejmenovávat soubory na straně Gitu, které mají v Overleafu sledované změny nebo komentáře.

**Sledované změny a komentáře**: Bohužel pushování z Gitu do Overleafu může vést ke ztrátě nebo posunu sledovaných změn a komentářů; proto nedoporučujeme míchat aktivní používání Gitu s používáním sledovaných změn a/nebo komentářů.

### Řešení problémů

#### Chyby „Repository not found“

Pokud se vám zobrazuje chyba Repository not found, je pravděpodobné, že se používá nesprávná URL. Správnou URL najdete kliknutím na možnost Git v nabídce v rámci projektu. Pro Overleaf Cloud je Gitová integrace prémiová funkce, takže bude dostupná pouze tehdy, pokud vlastník projektu má placené předplatné Overleafu nebo mu byl k této funkci udělen přístup (například účastí v raném beta testování).

#### Chyby autentizace selhala

Podívejte se prosím na pokyny k řešení problémů pro [autentizační tokeny pro Git integraci](/latex/cs/znalostni-baze/042-git-integration-authentication-tokens.md) nebo [autentizaci heslem pro Git integraci](/latex/cs/znalostni-baze/043-git-integration-password-based-authentication.md) v závislosti na tom, jaký způsob přihlášení používáte.

#### Omezení rychlosti

K omezení rychlosti Git Bridge obecně nedochází, když jsou Git operace prováděny ručně. Někteří Git klienti mohou být nakonfigurováni tak, aby se automaticky dotazovali vzdálených repozitářů na změny, což může v některých případech vést k chybám kvůli omezení rychlosti. Obvykle pomůže vypnutí jakéhokoli automatizovaného dotazování nebo snížení frekvence Git operací.

#### Selhání při pushování odkazů

Neúspěšné odeslání některé reference do vzdáleného projektu může být způsobeno [překročením omezení velikosti souboru nebo počtu souborů v projektu](/latex/cs/znalostni-baze/119-overleaf-plan-limits.md) nebo zahrnutím nepodporovaných typů souborů (například symlinků nebo LFS). Prohlédněte si výše uvedená známá omezení a identifikujte případné problematické soubory v commitu.

V některých případech může zvýšení nastavení **postBuffer** pomoci vyřešit selhání při pushování referencí z vašeho lokálního repozitáře do projektu v Overleafu.

Nejprve můžete zkontrolovat své aktuální nastavení pomocí příkazu:

```
     git config http.postBuffer
```

Pokud se nic nevypíše, znamená to, že se používá výchozí hodnota 1 MB.

Poté vyzkoušejte příkaz

```
     git config --global http.postBuffer 10485760
```

který místo toho nastaví hodnotu na 10 MB.

Nyní můžete zkusit commit pushnout (buď do původního projektu, nebo do nového). Pokud to nebude fungovat, můžete se vrátit k předchozímu nastavení nebo nastavení odstranit pomocí:

```
     git config --global --unset http.postBuffer
```

#### Časové limity

Git commity, které obsahují velké množství změn, mohou potenciálně vést k vypršení časového limitu. Pokud narazíte na časový limit, zkuste commit rozdělit na menší změny. Pokud problém přetrvává, zvažte nastavení **postBuffer** na 10 MB, jak je popsáno výše.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/cs/znalostni-baze/040-git-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
