> 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/overleaf-learn-latex-pt/base-de-conhecimento/044-github-synchronization.md).

# Sincronização com o GitHub

**Sincronização com o GitHub** é um [funcionalidade premium](/latex/overleaf-learn-latex-pt/base-de-conhecimento/120-overleaf-premium-features.md). As funcionalidades premium do Overleaf estão disponíveis para participantes em [Overleaf Commons](https://www.overleaf.com/for/universities), membros de grupo [subscrições](https://www.overleaf.com/for/groups), e proprietários de subscrições individuais [subscrições](https://www.overleaf.com/user/subscription/plans).

Resumo

A funcionalidade de Sincronização com o GitHub permite-lhe ligar os seus projetos do Overleaf diretamente a um repositório do GitHub que atua como repositório remoto do seu projeto do Overleaf e fornece uma forma de enviar e receber alterações entre ambos. A sincronização com o GitHub só pode ser usada em [GitHub.com](https://www.github.com) e não pode ser usada para ligar a outras instalações empresariais do GitHub.

Pode sincronizar um projeto do Overleaf com um repositório do GitHub quer criando um novo projeto do Overleaf a partir de um repositório do GitHub existente, quer criando um novo repositório do GitHub a partir de um projeto do Overleaf existente. Não é possível sincronizar um projeto do Overleaf existente com um repositório do GitHub existente.

* A Sincronização com o GitHub é ativada ao ligar a sua conta do GitHub à sua conta do Overleaf
* Podem ser criados novos projetos a partir de repositórios existentes do GitHub
* Podem ser criados repositórios no GitHub com base em projetos existentes do Overleaf
* Os projetos e repositórios ligados são mantidos sincronizados usando a **GitHub** opção no projeto **Menu**

### Ligar a sua conta do Overleaf à sua conta do GitHub

Para usar a funcionalidade de Sincronização com o GitHub, tem de ligar a sua conta do Overleaf à sua conta do GitHub. Pode fazê-lo no seu Overleaf [Definições da conta](https://www.overleaf.com/user/settings). Tenha em atenção que a capacidade do Overleaf de se ligar a determinados repositórios ou organizações associados à sua conta pode depender das definições de permissões que foram configuradas no GitHub.

### Criar um novo projeto do Overleaf a partir de um repositório do GitHub

No menu Novo Projeto, pode selecionar a opção GitHub. Isto apresentará uma lista de repositórios visíveis para o Overleaf através da sua conta do GitHub, com base nas suas definições de permissões do GitHub.

![Criar novo github.png](/files/d64b49b2e0a6bd29c11352f5de5e4e5891186c84)

Alguns aspetos a notar ao criar um novo projeto do Overleaf a partir de um repositório do GitHub existente.

* Existem restrições de tamanho aplicadas aos projetos do Overleaf que podem impedir que repositórios maiores do GitHub sejam usados para criar um projeto. Consulte [esta página](/latex/overleaf-learn-latex-pt/base-de-conhecimento/119-overleaf-plan-limits.md) para uma visão geral das limitações aplicadas ao tamanho e ao número de ficheiros num projeto do Overleaf.
* Os projetos do Overleaf não suportam submódulos Git nem Git LFS.

### Criar um novo repositório do GitHub a partir de um projeto do Overleaf

No menu do Projeto do Overleaf, pode selecionar GitHub como uma das opções de Sincronização. Isto abrirá uma caixa de diálogo onde pode fornecer o nome de um novo repositório do GitHub para sincronizar com o seu projeto do Overleaf.

![Menu do projeto github.png](/files/e5a601937da21d5ec76651b644442bef93170bc1)

### Sincronização com o GitHub

A sincronização entre o GitHub e o Overleaf não acontece automaticamente; as opções de sincronização são mostradas ao clicar em **GitHub** opção no projeto **Menu**. Nessa altura, a janela modal do GitHub indicará se existem novas alterações a importar do GitHub. Será sempre apresentada a opção de enviar alterações para o GitHub (nota: esta opção será mostrada mesmo que o Overleaf e o GitHub estejam atualizados).

![imagem da janela modal do GitHub](/files/2e80f03bbd86fb72c4059b648a377e2406a46ebc)

Os commits para o GitHub são criados quando o botão Enviar alterações do Overleaf para o GitHub é clicado. Nessa altura, pode ser fornecida uma mensagem de commit opcional.

* As alterações no histórico do Overleaf a partir do GitHub serão mostradas como sendo da autoria de anónimo.
* As alterações no histórico do GitHub a partir do Overleaf serão mostradas como tendo sido da autoria do proprietário da conta do GitHub ligada.

### Resolver conflitos de merge

Pode acontecer que, quando são feitas alterações tanto no Overleaf como no GitHub, o Git não consiga determinar como as combinar automaticamente. Por exemplo, se o seu colaborador alterou uma linha no Overleaf e você alterou a mesma linha no repositório do GitHub, o Overleaf pode não conseguir escolher qual versão manter.

Quando isso acontece, em vez de fazer merge para a sua branch principal, enviamos uma nova branch para o seu repositório. Esta branch terá um nome descritivo (incluindo a data e a hora da criação da branch) e contém a versão do documento no Overleaf. Quando tentar sincronizar com o GitHub, será apresentada uma mensagem a indicar que é necessário resolver um conflito de merge.

![Caixa de diálogo de conflito de merge do GitHub](/files/8921dd432142c94ea803c3d5ec3e800bd17bd2b7)

Para voltar a ficar sincronizado, tem de fazer merge da branch do Overleaf na sua branch principal (predefinida). Pode fazê-lo no seu computador, fazendo pull de ambas as branches e fazendo merge com o git ou com qualquer outra ferramenta, e depois enviando o resultado de volta para o GitHub. Em alternativa, pode fazer o merge diretamente no GitHub, criando um pull request a partir da branch do Overleaf e usando a respetiva funcionalidade de resolução de conflitos. Ambas as abordagens são explicadas na [documentação do GitHub](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts).

### Aceder a repositórios nas suas organizações do GitHub

Pode sincronizar projetos do Overleaf com repositórios associados à sua conta ligada do GitHub e também pode sincronizar com projetos em organizações do GitHub das quais seja membro. Para sincronizar com repositórios nas suas organizações do GitHub associadas, essas organizações têm de conceder permissão para serem acedidas pela aplicação OAuth do Overleaf.

* Se for membro de uma organização, pode seguir os passos descritos [aqui](https://help.github.com/articles/requesting-organization-approval-for-oauth-apps/) para solicitar acesso para que a aplicação do Overleaf aceda à sua organização.
* Se for o proprietário da organização, pode seguir os passos descritos [aqui](https://help.github.com/articles/approving-oauth-apps-for-your-organization/) para aprovar a aplicação do Overleaf para a organização.

### Limites de ficheiros da Sincronização com o GitHub

Os projetos do Overleaf estão sujeitos a limitações individuais de tamanho, bem como a limites para o número total de ficheiros num projeto, conforme referido [aqui](/latex/overleaf-learn-latex-pt/base-de-conhecimento/119-overleaf-plan-limits.md). Embora o Git em si possa lidar com um único commit que altere milhares de ficheiros, a API do GitHub utilizada pela funcionalidade de sincronização com o GitHub do Overleaf também impõe limites ao número de ficheiros que podem ser enviados ou importados. Recomenda-se limitar o número de ficheiros num commit individual a menos de 100 ficheiros, e o tamanho total do projeto a menos de 100 MB se estiver a usar a sincronização com o GitHub. Projetos acima destes tamanhos podem funcionar, mas recomendamos que se mantenha dentro destes limites para evitar potenciais problemas de sincronização.

### Desligar um projeto de um repositório

Embora seja possível criar vários projetos a partir de um único repositório do GitHub existente, **não é possível alterar o repositório associado a um dado projeto**. Assim que um projeto está ligado a um repositório, não pode ser desligado e usado para criar um novo repositório. Se precisar de criar um novo repositório a partir de um projeto específico, tem de fazer uma nova cópia do projeto e depois criar o novo repositório a partir da cópia.

### Limitações conhecidas

**Ramificações**: O sistema Git do Overleaf não suporta ramificações.

**Links simbólicos**: O sistema Git do Overleaf não suporta ligações simbólicas. Uma ligação simbólica pode ser enviada para um projeto do Overleaf, mas será convertida num ficheiro regular e substituirá a ligação simbólica local da próxima vez que o projeto for importado.

**Permissões de ficheiro**: O sistema Git do Overleaf não preserva permissões de execução. Quando se trabalha com a sincronização com o GitHub, se algum ficheiro com o bit de execução no GitHub for sincronizado com o Overleaf, é acionado automaticamente um commit pelo Overleaf para repor as permissões do ficheiro.

**Git LFS**: Os projetos do Overleaf não suportam Git Large File Storage.

**Submódulos Git**: Os projetos do Overleaf podem atuar como submódulos Git dentro de outros repositórios, mas não podem conter outros submódulos Git. Para referenciar ficheiros de outros projetos, sugere-se usar a funcionalidade de adicionar a partir de outro projeto.

**Controlo de alterações e comentários**: Infelizmente, importações do GitHub para o Overleaf podem resultar na perda ou deslocação de alterações rastreadas e comentários; consequentemente, não recomendamos misturar trabalho ativo no GitHub e o uso de alterações rastreadas e/ou comentários.

**Sincronização direta com GitHub Enterprise ou GitLab:** A API do GitHub utilizada pelo Overleaf só pode ligar a repositórios alojados em github.com. Pode sincronizar indiretamente com projetos alojados noutros fornecedores usando a [integração Git do Overleaf](/latex/overleaf-learn-latex-pt/base-de-conhecimento/040-git-integration.md) .

**Ligar um projeto existente a um repositório existente**: Não é possível sincronizar um projeto do Overleaf existente com um repositório do GitHub existente.

**Autoria dos envios para o GitHub**: O único utilizador do GitHub de que o Overleaf tem conhecimento é o utilizador cuja conta do GitHub está ligada à conta do Overleaf e é proprietário desse projeto. Todos os commits são feitos usando uma API do GitHub que explicitamente faz esses commits usando a identidade desse utilizador. Portanto, todos os commits aparecerão no histórico Git do GitHub como vindos do utilizador ligado. No histórico do Overleaf, as alterações são mostradas como "Anónimo (via GitHub)".

**Histórico Git e histórico do Overleaf:** As alterações do lado do Overleaf não têm um mapeamento um-para-um com os commits do GitHub. Vários utilizadores podem fazer alterações do lado do Overleaf, mas essas alterações serão agrupadas num único commit sob o utilizador ligado ao GitHub quando a sincronização for acionada.


---

# 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/overleaf-learn-latex-pt/base-de-conhecimento/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.
