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

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

**Синхронизация с GitHub** — это [премиум-функция](/latex/ru/baza-znanii/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 Enterprise.

Вы можете синхронизировать проект 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

В меню «Новый проект» вы можете выбрать опцию GitHub. Это покажет вам список репозиториев, которые видны Overleaf через вашу учётную запись GitHub, на основе ваших настроек разрешений GitHub.

![Создать новый github.png](/files/513cb8878cd7444d56bbd9e1cdd0495c9203770a)

Несколько моментов, на которые следует обратить внимание при создании нового проекта Overleaf из существующего репозитория GitHub.

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

### Создание нового репозитория GitHub из проекта Overleaf

В меню проекта Overleaf вы можете выбрать GitHub как один из вариантов синхронизации. Это откроет диалоговое окно, в котором вы сможете указать имя нового репозитория GitHub для синхронизации с вашим проектом Overleaf.

![Меню проекта github.png](/files/449cba6b705bbab8ab511f0212a7cc037d1da4d4)

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

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

![изображение модального окна GitHub](/files/34822f60d5867ff0663330cdb8b6693f4809bef9)

Коммиты в GitHub создаются при нажатии кнопки «Отправить изменения Overleaf в GitHub». В этот момент можно указать необязательное сообщение коммита.

* Изменения в истории Overleaf, полученные из GitHub, будут отображаться как созданные анонимным пользователем.
* Изменения в истории GitHub, полученные из Overleaf, будут отображаться как созданные владельцем подключённой учётной записи GitHub.

### Разрешение конфликтов слияния

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

Когда это происходит, вместо объединения в вашу основную ветку мы отправляем в ваш репозиторий новую ветку. Эта ветка будет иметь описательное имя (включая дату и время создания ветки) и содержать версию документа из Overleaf. Когда вы попытаетесь синхронизироваться с GitHub, будет показано сообщение о необходимости разрешить конфликт слияния.

![Диалоговое окно конфликта слияния GitHub](/files/c930805b8b65a824870040769f0aa67109037149)

Чтобы снова синхронизироваться, вам нужно объединить ветку 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/ru/baza-znanii/119-overleaf-plan-limits.md). Хотя сам Git может обрабатывать один коммит, изменяющий тысячи файлов, GitHub API, используемый функцией синхронизации с GitHub в Overleaf, также накладывает ограничения на количество файлов, которые можно отправить или получить. Рекомендуется ограничивать количество файлов в одном коммите менее чем 100 файлами, а общий размер проекта — менее 100 МБ при использовании синхронизации GitHub. Проекты больше этого размера могут работать, но мы рекомендуем оставаться в пределах этих ограничений, чтобы избежать возможных проблем синхронизации.

### Отключение проекта от репозитория

Хотя можно создать несколько проектов из одного существующего репозитория GitHub, **невозможно изменить репозиторий, связанный с данным проектом**. После того как проект связан с репозиторием, его нельзя отвязать и использовать для создания нового репозитория. Если вам нужно создать новый репозиторий из определённого проекта, необходимо сделать новую копию проекта, а затем создать новый репозиторий из копии.

### Известные ограничения

**Ветки**: Система Git в Overleaf не поддерживает ветвление.

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

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

**Git LFS**: Проекты Overleaf не поддерживают Git Large File Storage.

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

**Отслеживание изменений и комментарии**: К сожалению, получение изменений из GitHub в Overleaf может привести к потере или смещению исправлений и комментариев; поэтому мы не рекомендуем смешивать активную работу в GitHub и использование исправлений и/или комментариев.

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

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

**Авторство отправки в GitHub**: Единственный пользователь Github, о котором знает Overleaf, — это пользователь, чья учётная запись GitHub связана с учётной записью Overleaf и владеет этим проектом. Все коммиты выполняются через API GitHub, который явно создаёт их от имени этого пользователя. Поэтому все коммиты будут отображаться в истории 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/ru/baza-znanii/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.
