> 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/uk/baza-znan/044-github-synchronization.md).

# Синхронізація GitHub

**Синхронізація з GitHub** є [преміум-функцією](/latex/uk/baza-znan/120-overleaf-premium-features.md). Преміум-функції Overleaf доступні учасникам у [Overleaf Commons](https://www.overleaf.com/for/universities), учасникам групи [передплат](https://www.overleaf.com/for/groups), а також власникам індивідуальних [передплат](https://www.overleaf.com/user/subscription/plans).

Підсумок

Функція синхронізації з GitHub дає змогу безпосередньо пов’язати ваші проєкти Overleaf із репозиторієм GitHub, який виступає віддаленим репозиторієм для вашого проєкту Overleaf, і забезпечує спосіб надсилати та отримувати зміни між ними. Синхронізацію з GitHub можна використовувати лише на [Github.com](https://www.github.com) і її не можна використовувати для підключення до інших корпоративних інсталяцій GitHub.

Ви можете синхронізувати проєкт Overleaf із репозиторієм GitHub або створивши новий проєкт Overleaf з наявного репозиторію GitHub, або створивши новий репозиторій GitHub з наявного проєкту Overleaf. Неможливо синхронізувати наявний проєкт Overleaf із наявним репозиторієм Github.

* Синхронізацію з GitHub увімкнено шляхом прив’язки вашого облікового запису GitHub до облікового запису Overleaf
* Нові проєкти можна створювати з наявних репозиторіїв GitHub
* Репозиторії можна створювати в GitHub на основі наявних проєктів Overleaf
* Пов’язані проєкти та репозиторії підтримуються в синхронізації за допомогою **GitHub** параметра в **Меню**

### Прив’язування вашого облікового запису Overleaf до вашого облікового запису GitHub

Щоб використовувати функцію синхронізації з GitHub, потрібно прив’язати ваш обліковий запис Overleaf до вашого облікового запису Github. Ви можете зробити це у своєму Overleaf [Налаштування облікового запису](https://www.overleaf.com/user/settings). Зверніть увагу, що можливість Overleaf підключатися до певних репозиторіїв або організацій, пов’язаних із вашим обліковим записом, може залежати від налаштувань дозволів, налаштованих у GitHub.

### Створення нового проєкту Overleaf із репозиторію GitHub

У меню New Project ви можете вибрати опцію GitHub. Після цього вам буде показано список репозиторіїв, видимих Overleaf через ваш обліковий запис GitHub, відповідно до налаштувань дозволів GitHub.

![Створити новий github.png](/files/8c546c3a79413a7135078b23f7ead36153c15be2)

Декілька моментів, на які слід звернути увагу під час створення нового проєкту Overleaf із наявного репозиторію GitHub.

* Для проєктів Overleaf діють обмеження на розмір, через які більші репозиторії GitHub можуть не підійти для створення проєкту. Будь ласка, перегляньте [цю сторінку](/latex/uk/baza-znan/119-overleaf-plan-limits.md) огляд обмежень, що застосовуються до розміру та кількості файлів у проєкті Overleaf.
* Проєкти Overleaf не підтримують Git-підмодулі або Git LFS.

### Створення нового репозиторію GitHub із проєкту Overleaf

У меню проєкту Overleaf ви можете вибрати GitHub як один із параметрів синхронізації. Це відкриє діалогове вікно, у якому ви можете вказати назву нового репозиторію GitHub для синхронізації з вашим проєктом Overleaf.

![Меню проєкту github.png](/files/93d8a0f48451d98accdfeee496e412c1d933051f)

### Синхронізація з GitHub

Синхронізація між GitHub та Overleaf не відбувається автоматично; параметри синхронізації відображаються після натискання **GitHub** параметра в **Меню**. У цей момент у модальному вікні GitHub буде показано, чи є нові зміни, які потрібно отримати з GitHub. Вам завжди буде запропоновано можливість надіслати зміни до GitHub (примітка: цей варіант буде показано навіть якщо Overleaf і GitHub уже синхронізовані).

![зображення модального вікна GitHub](/files/8839510a3ea3bd3cdc4cf10db001afc29f533117)

Коміти до GitHub створюються після натискання кнопки Надіслати зміни Overleaf до GitHub. У цей момент можна додати необов’язкове повідомлення до коміту.

* Зміни в історії Overleaf, що походять із GitHub, будуть показані як створені анонімно.
* Зміни в історії GitHub, що походять з Overleaf, будуть показані як створені власником підключеного облікового запису GitHub.

### Розв’язання конфліктів злиття

Може статися так, що коли зміни вносяться і в Overleaf, і в Github, Git не може автоматично визначити, як їх об’єднати. Наприклад, якщо ваш співавтор змінив рядок в Overleaf, а ви змінили той самий рядок у репозиторії Github, Overleaf може не мати змоги вибрати, яку версію зберегти.

Коли це трапляється, замість злиття в основну гілку, ми надсилаємо до вашого репозиторію нову гілку. Ця гілка матиме описову назву (включно з датою й часом створення гілки) і міститиме версію документа в Overleaf. Коли ви спробуєте виконати синхронізацію з GitHub, буде показано повідомлення про те, що потрібно розв’язати конфлікт злиття.

![Діалогове вікно конфлікту злиття GitHub](/files/af4d52059bfeaffe4e08aa5e1c31e46411fd2d86)

Щоб знову синхронізуватися, вам потрібно злити гілку Overleaf з вашою основною (за замовчуванням) гілкою. Ви можете зробити це на своєму комп’ютері, отримавши обидві гілки та виконавши злиття за допомогою git або будь-якого іншого інструмента, а потім надіславши результат назад до Github. Або ж ви можете виконати злиття безпосередньо в Github, створивши pull request із гілки Overleaf і скориставшись їхньою функцією розв’язання конфліктів. Обидва підходи описані в [документації Github](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts).

### Доступ до репозиторіїв у ваших організаціях GitHub

Ви можете синхронізувати проєкти Overleaf із репозиторіями, пов’язаними з вашим підключеним обліковим записом GitHub, а також можете синхронізуватися з проєктами в організаціях GitHub, членом яких ви є. Щоб синхронізуватися з репозиторіями у ваших пов’язаних організаціях GitHub, ці організації мають надати дозвіл на доступ для програми Overleaf OAuth.

* Якщо ви є учасником організації, ви можете виконати кроки, описані [тут](https://help.github.com/articles/requesting-organization-approval-for-oauth-apps/) щоб запросити доступ для програми Overleaf до вашої організації.
* Якщо ви є власником організації, ви можете виконати кроки, описані [тут](https://help.github.com/articles/approving-oauth-apps-for-your-organization/) щоб схвалити програму Overleaf для організації.

### Обмеження файлів для синхронізації з GitHub

На проєкти Overleaf поширюються окремі обмеження на розмір, а також обмеження на загальну кількість файлів у проєкті, як зазначено [тут](/latex/uk/baza-znan/119-overleaf-plan-limits.md). Хоча сам Git може обробити один коміт, що змінює тисячі файлів, API GitHub, який використовується функцією синхронізації GitHub в Overleaf, також накладає обмеження на кількість файлів, які можна надіслати або отримати. Рекомендовано обмежувати кількість файлів в одному коміті до менш ніж 100 файлів, а загальний розмір проєкту — до менш ніж 100 МБ, якщо використовується синхронізація з GitHub. Проєкти, що перевищують ці розміри, можуть працювати, але ми рекомендуємо дотримуватися цих обмежень, щоб уникнути потенційних проблем із синхронізацією.

### Від’єднання проєкту від репозиторію

Хоча можна створити кілька проєктів з одного наявного репозиторію GitHub, **неможливо змінити репозиторій, пов’язаний із певним проєктом**. Після того як проєкт пов’язано з репозиторієм, його не можна від’єднати й використати для створення нового репозиторію. Якщо вам потрібно створити новий репозиторій із певного проєкту, ви маєте зробити нову копію проєкту, а потім створити новий репозиторій із цієї копії.

### Відомі обмеження

**Гілки**: Git-система Overleaf не підтримує розгалуження.

**Символічні посилання**: Система Git Overleaf не підтримує символьні посилання. Символьне посилання можна надіслати до проєкту Overleaf, але воно буде перетворене на звичайний файл і перезапише локальне символьне посилання під час наступного отримання проєкту.

**Права доступу до файлів**: Система Git Overleaf не зберігає права на виконання. Під час роботи із синхронізацією GitHub, якщо будь-які файли з установленим бітовим прапорцем виконання в GitHub синхронізуються з Overleaf, Overleaf автоматично створює коміт для скидання прав доступу до файлів.

**Git LFS**: Проєкти Overleaf не підтримують Git Large File Storage.

**Git-підмодулі**: Проєкти Overleaf можуть виступати як Git-підмодулі в інших репозиторіях, але не можуть містити інші Git-підмодулі. Щоб посилатися на файли з інших проєктів, рекомендується використовувати функцію додавання з іншого проєкту.

**Відстежувані зміни та коментарі**: На жаль, отримання змін із GitHub до Overleaf може призвести до втрати або зміщення відстежуваних змін і коментарів; тому ми не рекомендуємо змішувати активну роботу в GitHub із використанням відстежуваних змін та/або коментарів.

**Пряма синхронізація з GitHub Enterprise або GitLab:** API GitHub, який використовується Overleaf, може підключатися лише до репозиторіїв, розміщених на github.com. Ви можете опосередковано синхронізуватися з проєктами, розміщеними в інших постачальників, використовуючи [інтеграцію Overleaf з Git](/latex/uk/baza-znan/040-git-integration.md) функцією.

**Підключення наявного проєкту до наявного репозиторію**: Неможливо синхронізувати наявний проєкт Overleaf із наявним репозиторієм Github.

**Авторство відправлень до GitHub**: Єдиний користувач Github, про якого знає Overleaf, — це користувач, чий обліковий запис GitHub прив’язано до облікового запису Overleaf і який володіє цим проєктом. Усі коміти виконуються за допомогою GitHub API, який явно створює ці коміти від імені цього користувача. Тож усі коміти в історії GitHub відображатимуться як такі, що надійшли від прив’язаного користувача. В історії Overleaf зміни відображаються як "Anonymous (via GitHub)".

**Історія Git і історія Overleaf:** Зміни на боці Overleaf не мають відповідності один до одного з комітами GitHub. З боку Overleaf зміни можуть вносити кілька користувачів, але ці зміни будуть об’єднані в один коміт під пов’язаним користувачем у GitHub, коли буде запущено синхронізацію.


---

# 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/uk/baza-znan/044-github-synchronization.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.
