> 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/pl/baza-wiedzy/040-git-integration.md).

# Integracja z Git

**Integracja Git w Overleaf** jest [funkcją premium](/latex/pl/baza-wiedzy/120-overleaf-premium-features.md). Funkcje premium Overleaf są dostępne dla uczestników w [Overleaf Commons](https://www.overleaf.com/for/universities), członków grupy [subskrypcji](https://www.overleaf.com/for/groups), oraz właścicieli indywidualnych [subskrypcji](https://www.overleaf.com/user/subscription/plans). Integracja Git jest dostępna w Overleaf Cloud oraz Overleaf Server Pro (wersja 4.0 i nowsza).

### Czym jest integracja Git w Overleaf?

Integracja Git w Overleaf umożliwia pobranie adresu URL Git z projektu Overleaf i traktowanie go jak zdalnego repozytorium Git (repozytorium). Możesz sklonować swój projekt do lokalnego repozytorium Git i pracować nad nim lokalnie, wypychając zmiany z lokalnej maszyny do projektu oraz pobierając aktualizacje zachodzące w edytorze online Overleaf do lokalnego repozytorium.

Dzięki temu możesz pracować nad projektem lokalnie wtedy, gdy praca online nie jest możliwa, używać innego lokalnego edytora według własnego wyboru podczas pracy nad projektem Overleaf lub łatwo dodawać wyniki z innego lokalnego oprogramowania do projektu Overleaf.

Adres URL Git i polecenie klonowania dla swojego projektu możesz uzyskać z opcji Git w menu Overleaf swojego projektu.

![Menu projektu git.png](/files/098eea08e39a918c25025e428e325403dd8a888a)

### Jak uwierzytelnić się podczas korzystania z integracji Git

Gdy wykonujesz operację Git, taką jak clone, pull lub push do zdalnego projektu Overleaf, zostaniesz poproszony o uwierzytelnienie.

Aby uzyskać dostęp do projektu Overleaf z poziomu Gita, musisz używać uwierzytelniania opartego na tokenach Overleaf. Instrukcje krok po kroku znajdziesz tutaj: [Uwierzytelnianie oparte na tokenach](/latex/pl/baza-wiedzy/042-git-integration-authentication-tokens.md).

### Klonowanie projektu jako lokalnego repozytorium

Z [**Menu**](/latex/pl/baza-wiedzy/148-using-the-overleaf-project-menu.md) menu w swoim projekcie możesz wybrać Git z opcji synchronizacji. Spowoduje to wyświetlenie okna dialogowego pokazującego `git clone` polecenie, którego należy użyć podczas tworzenia lokalnego repozytorium.

![Menu projektu git.png](/files/098eea08e39a918c25025e428e325403dd8a888a)

Alternatywnie, adres URL Git możesz znaleźć na podstawie adresu URL projektu (adresu URL w pasku adresu przeglądarki, gdy jesteś w projekcie).

#### Overleaf Cloud

Jeśli korzystasz z Overleaf Cloud, a adres URL projektu Overleaf wygląda tak:

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

Wtedy adres URL Git używany do sklonowania projektu będzie

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

A polecenie używane do sklonowania projektu do lokalnego repozytorium Git będzie następujące:

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

**Uwaga**: możesz zostać poproszony o nazwę użytkownika i hasło. Zobacz [uwierzytelnianie hasłem integracji Git](/latex/pl/baza-wiedzy/043-git-integration-password-based-authentication.md)

#### Overleaf Server Pro (wersja 4.0 lub nowsza)

**Uwaga**: Integracja Git-bridge nie jest domyślnie włączona w Server Pro. Zobacz nasz [Integracja Git](https://github.com/overleaf/overleaf/wiki/Git-Integration) przewodnik, aby uzyskać instrukcje, jak ją włączyć.

Jeśli korzystasz z Overleaf Server Pro, a adres URL projektu wygląda tak:

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

Wtedy adres URL Git używany podczas klonowania projektu będzie:

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

A polecenie używane do sklonowania projektu do lokalnego repozytorium Git z użyciem wiersza poleceń Git będzie następujące:

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

**Uwaga**: może pojawić się prośba o hasło. Zobacz: [Tokeny uwierzytelniające integracji Git](/latex/pl/baza-wiedzy/042-git-integration-authentication-tokens.md)

### Tworzenie projektu Overleaf z istniejącego repozytorium Git

Jeśli masz istniejące repozytorium, możesz dodać projekt Overleaf jako zdalne repozytorium. Aby rozpocząć, trzeba wykonać kilka poleceń poniżej. Pamiętaj, że Overleaf obsługuje tylko jedną liniową historię dla każdego projektu. Integracja Git egzekwuje to ograniczenie, limitując liczbę gałęzi do jednej. Ta jedna gałąź jest obecnie na sztywno nazwana `master`.

1. Najpierw zakładamy, że masz repozytorium git na swoim komputerze w folderze o nazwie `my-paper`. (Może być ono też hostowane na GitHubie, GitLabie lub Bitbucket itp., ale musisz mieć je również sklonowane lokalnie.)
2. Utwórz [nowy projekt](/latex/pl/baza-wiedzy/031-creating-a-document-in-overleaf.md) w Overleaf. Ponieważ dowolna zawartość projektu zostanie nadpisana, użyj opcji projektu 'Blank' podczas tworzenia tego projektu i usuń plik `main.tex` w Overleaf.
3. Znajdź adres URL Git dla projektu (zobacz [powyżej](#cloning-your-project-as-a-local-repository)).

   ![Git-bridge-url.png](/files/1244412b4191fe51ebe24fa82307654b51c19a29)
4. Dodaj adres URL Git projektu jako zdalny w swoim lokalnym projekcie.

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

   (Upewnij się, że używasz własnego linku, a nie przykładowego.)
5. Pobierz najnowszą zawartość z projektu Overleaf i scal ją ze swoją gałęzią master.

   ```
   $ git checkout master
   $ git pull overleaf master --allow-unrelated-histories --rebase=false
   ```
6. Wypchnij swój projekt do Overleaf.

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

   Jeśli chcesz lokalnie użyć innej nazwy gałęzi, np. `my-branch`, możesz wypchnąć swoje zmiany z aliasem:

   ```
   $ git push overleaf my-branch:master
   ```
7. Odwiedź projekt w Overleaf. Twoje zmiany powinny tam być. (Może być konieczne otwarcie menu projektu Overleaf, aby znaleźć, który plik został ustawiony jako główny dokument, i ewentualnie zmiana tego początkowego wyboru.)

### Commity Git i integracja Git w Overleaf

Overleaf ma wewnętrzny [system historii](/latex/pl/wiecej-tematow/49-using-the-history-feature.md) który umożliwia jednoczesną współpracę w projekcie Overleaf. To nie jest to samo co Git, więc integracja Git w Overleaf jest zasadniczo tłumaczeniem mechanizmu historii i wersjonowania Overleaf na Git. Umożliwia to wiele zastosowań z obsługą Gita, ale nie pozwala pracować w Overleaf tak, jakby była to pełna implementacja Gita.

#### Kiedy tworzone są commity?

Gdy wydasz polecenie `pull` lub `fetch` polecenie, jeśli nie istnieje commit dla bieżącego stanu projektu, nowy commit zostaje utworzony dynamicznie. Gdy `push` pliki z lokalnego repozytorium do zdalnego repozytorium Overleaf, commit jest tworzony również wtedy, co będzie widoczne w każdym przyszłym klonie projektu Overleaf, który utworzysz. Gdy ty lub inni edytują w Overleaf, commity nie będą tworzone automatycznie, dopóki nie będą potrzebne.

#### Wymuszanie commitów

Jeśli chcesz wymusić utworzenie commita w określonym punkcie historii Overleaf, możesz to zrobić, [oznaczając wersję](/latex/pl/wiecej-tematow/49-using-the-history-feature.md) w historii Overleaf. Oznaczona wersja otrzyma własny hash commita, nawet jeśli nie wykonasz od razu git pull. Commit zostanie utworzony z etykiety tylko wtedy, gdy nie było żadnych innych commitów wykonanych później niż punkt historii Overleaf, który jest oznaczany.

#### Śledzenie autorstwa

Doraźny charakter commitów z integracji Git w Overleaf oznacza, że jeśli przed utworzeniem commita nastąpiło kilka zmian po stronie Overleaf, jako autor commita zostanie podany autor najnowszej zmiany.

Pracując ze współautorami, warto utworzyć etykietę (generując commit) po tym, jak każdy współpracownik zakończy istotną aktualizację — tworzy to sekwencję commitów widoczną w Git, która najdokładniej odzwierciedla zmiany zachodzące w Overleaf.

### Synchronizacja z innym zdalnym repozytorium

Integracja Git w Overleaf pozwala, aby twój projekt Overleaf działał jako zdalne repozytorium dla lokalnych repozytoriów. Możesz jednak chcieć synchronizować swój projekt Overleaf z innym zdalnym repozytorium, hostowanym na GitHubie, GitLabie lub innej usłudze hostowania Gita.

Jeśli synchronizujesz swój projekt z repozytorium hostowanym na GitHubie (<https://github.com/>), możesz chcieć skorzystać z bezpośredniej funkcji [synchronizacji z GitHubem](/latex/pl/baza-wiedzy/044-github-synchronization.md) .

Jeśli synchronizujesz swój projekt z GitLabem, GitHub Enterprise lub innym hostem, możesz użyć integracji Git w Overleaf do skonfigurowania pośredniego lokalnego repozytorium.

Postępując zgodnie z powyższymi instrukcjami dotyczącymi [klonowania projektu](#cloning-your-project-as-a-local-repository) lub [łączenia projektu z istniejącym repozytorium](#creating-an-overleaf-project-from-an-existing-git-repository), będziesz mieć lokalne repozytorium, które może wypychać/pobierać zmiany z Overleaf. Następnie możesz dodać do tego repozytorium drugie zdalne repozytorium, które wskazuje na twoje repozytorium hostowane. Twoje lokalne repozytorium będzie musiało mieć dwa zdalne repozytoria, aby wskazywało zarówno na host Gita, jak i projekt Overleaf.

Chociaż nie będzie bezpośredniego połączenia między projektem Overleaf a twoim repozytorium Git, pozwoli to utrzymywać je w synchronizacji.

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

### Dodaj projekt Overleaf jako podmoduł Git

Każdy projekt w Overleaf działa jako niezależne repozytorium Git, ale jeśli chcesz uporządkować kilka takich projektów w jedno repozytorium Git, możesz dodać repozytorium każdego projektu jako podmoduł Git w zwykły sposób. Następnie możesz indywidualnie wypychać i pobierać każde repozytorium podmodułu do/z Overleaf, a jednocześnie mieć je zebrane razem jako podmoduły w większym projekcie.

**Uwaga:** Chociaż projekty Overleaf mogą być podmodułami w innym repozytorium, same projekty Overleaf nie mogą zawierać innych podmodułów.

### Znane ograniczenia

**Gałęzie**: System Git Overleaf nie obsługuje tworzenia gałęzi.

**Dowiązania symboliczne**: System Git Overleaf nie radzi sobie dobrze z dowiązaniami symbolicznymi. Dowiązanie symboliczne można wypchnąć do projektu Overleaf, ale zostanie ono przekonwertowane na zwykły plik i przy następnym pobraniu projektu nadpisze lokalne dowiązanie symboliczne.

**Tagi**: System Git Overleaf nie obsługuje tagowania.

**Uprawnienia plików**: System Git Overleaf nie zachowuje uprawnień do wykonywania. Aby obejść ten problem, możesz uruchomić `git config core.fileMode false` w lokalnym klonie repozytorium. Następnie możesz zresetować uprawnienia wykonywania dla wszystkich dotkniętych plików. Dzięki temu nie będą one ponownie modyfikowane przy kolejnych operacjach Git.

**Git LFS:** Projekty Overleaf nie obsługują Git Large File Storage.

**Podmoduły Git:** Projekty Overleaf mogą działać jako podmoduły Git w innych repozytoriach, ale nie mogą zawierać innych podmodułów Git. Aby odwołać się do plików z innych projektów, zaleca się użycie [funkcji dodawania z innego projektu](/latex/pl/baza-wiedzy/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md).

**Zmiana nazw folderów**: Jeśli użytkownik zmieni nazwę folderu i wypchnie zmianę do Overleaf, projekt zachowa pusty folder ze starą nazwą, oprócz nowego folderu. (Na przykład zmiana nazwy images/ na img/ pozostawi w projekcie dwa foldery: img/ zawierający pliki obrazów oraz images/, który będzie pusty. Może to powodować problemy, gdy użytkownik zmieni nazwę folderu i utworzy nowy plik o takiej samej nazwie jak stary folder, w jednym commitcie. System Git Overleaf odrzuci ten commit. W takim przypadku zalecamy podzielenie commita na dwie części i usunięcie pozostałego folderu.

**Zmiana nazw plików i przenoszenie plików:** Zmiana nazwy pliku w lokalnym repozytorium staje się po stronie Overleaf usunięciem i utworzeniem. Może to spowodować utratę metadanych powiązanych z plikiem po stronie Overleaf, prowadząc do usunięcia śledzonych zmian i komentarzy. Nie zaleca się przenoszenia ani zmieniania nazw plików po stronie Git, jeśli mają one śledzone zmiany lub komentarze w Overleaf.

**Śledzone zmiany i komentarze**: Niestety, wypchnięcia z Gita do Overleaf mogą prowadzić do utraty lub przesunięcia śledzonych zmian i komentarzy; w związku z tym nie zalecamy łączenia aktywnego używania Gita z używaniem śledzonych zmian i/lub komentarzy.

### Rozwiązywanie problemów

#### Błędy „Repository not found”

Jeśli widzisz błąd „Repository not found”, prawdopodobnie używany jest zły adres URL. Prawidłowy adres URL można znaleźć, klikając opcję Git w menu wewnątrz projektu. W Overleaf Cloud integracja Git jest funkcją premium, więc będzie dostępna tylko wtedy, gdy właściciel projektu ma płatną subskrypcję Overleaf lub otrzymał dostęp do tej funkcji (na przykład uczestnicząc we wczesnych testach beta).

#### Błędy „Authentication failed”

Zapoznaj się z instrukcjami rozwiązywania problemów dla [Tokeny uwierzytelniające integracji Git](/latex/pl/baza-wiedzy/042-git-integration-authentication-tokens.md) lub [uwierzytelnianie hasłem integracji Git](/latex/pl/baza-wiedzy/043-git-integration-password-based-authentication.md) w zależności od używanej metody logowania.

#### Limity szybkości

Ograniczanie szybkości dla Git Bridge zazwyczaj nie występuje, gdy operacje Git są wykonywane ręcznie. Niektóre klienty Git można skonfigurować tak, aby automatycznie sprawdzały zdalne repozytoria pod kątem zmian, co w niektórych przypadkach może prowadzić do błędów ograniczenia szybkości. Zazwyczaj wyłączenie automatycznego sprawdzania lub zmniejszenie częstotliwości operacji Git powinno rozwiązać te problemy.

#### Niepowodzenie wypchnięcia referencji

Niepowodzenie wypchnięcia niektórych referencji do zdalnego projektu może być spowodowane przez [przekroczenie limitów rozmiaru pliku lub liczby plików w projekcie](/latex/pl/baza-wiedzy/119-overleaf-plan-limits.md) lub uwzględnienie nieobsługiwanych typów plików (na przykład dowiązań symbolicznych lub LFS). Przejrzyj wymienione powyżej znane ograniczenia, aby zidentyfikować problematyczne pliki w commicie.

W niektórych przypadkach zwiększenie **postBuffer** może pomóc w rozwiązaniu niepowodzeń wypychania referencji z lokalnego repozytorium do projektu Overleaf.

Najpierw możesz sprawdzić bieżące ustawienie poleceniem:

```
     git config http.postBuffer
```

Jeśli nie ma żadnego wyniku, oznacza to, że używana jest domyślna wartość 1 MB.

Następnie spróbuj polecenia

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

które ustawi wartość na 10 MB.

Teraz możesz spróbować wypchnąć commit (do oryginalnego projektu albo do nowego). Jeśli to nie zadziała, możesz wrócić do poprzedniego ustawienia albo usunąć ustawienie poleceniem:

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

#### Limity czasowe

Comity Git zawierające dużą liczbę zmian mogą potencjalnie prowadzić do przekroczenia limitu czasowego. Jeśli napotkasz przekroczenie limitu czasowego, spróbuj podzielić commit na mniejsze zmiany. Jeśli problem będzie się utrzymywał, rozważ ustawienie **postBuffer** na 10 MB, jak opisano powyżej.


---

# 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/pl/baza-wiedzy/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.
