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

# Integração com Git

**A integração Git do Overleaf** é 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). A integração Git está disponível no Overleaf Cloud e no Overleaf Server Pro (versão 4.0 e posteriores).

### O que é a integração Git do Overleaf?

A integração Git do Overleaf permite-lhe obter um URL Git a partir do seu projeto Overleaf e tratá-lo como um repositório Git remoto (repo). Pode clonar o seu projeto para um repositório Git local e trabalhar no seu projeto localmente, enviando alterações para o seu projeto a partir da sua máquina local e obtendo atualizações que estejam a ocorrer no editor online do Overleaf para o seu repositório local.

Isto permite-lhe trabalhar no seu projeto localmente nos momentos em que o trabalho online não é viável, usar um editor local diferente da sua escolha ao trabalhar num projeto Overleaf, ou adicionar facilmente resultados de outro software local ao seu projeto Overleaf.

Pode obter o URL Git e o comando de clonagem do seu projeto a partir da opção Git no menu do seu projeto no Overleaf.

![Menu do projeto git.png](/files/288a0a1df7077f434aad02c8ddf604f513f9a91c)

### Como autenticar ao usar a integração Git

Quando executar uma operação Git como clone, pull ou push para o seu projeto remoto do Overleaf, ser-lhe-á pedido que se autentique.

Para aceder ao seu projeto Overleaf a partir do Git, tem de usar autenticação baseada em token do Overleaf. Para instruções passo a passo, consulte: [Autenticação baseada em token](/latex/overleaf-learn-latex-pt/base-de-conhecimento/042-git-integration-authentication-tokens.md).

### Clonar o seu projeto como um repositório local

A partir do [**Menu**](/latex/overleaf-learn-latex-pt/base-de-conhecimento/148-using-the-overleaf-project-menu.md) no seu projeto, pode selecionar Git nas opções de Sincronização. Isto abrirá uma caixa de diálogo mostrando o `git clone` comando a usar ao criar o seu repositório local.

![Menu do projeto git.png](/files/288a0a1df7077f434aad02c8ddf604f513f9a91c)

Em alternativa, pode encontrar o URL Git a partir do URL do projeto (o URL na barra de endereço do navegador quando está num projeto).

#### Overleaf Cloud

Se estiver a usar o Overleaf Cloud e o URL do seu projeto Overleaf se parecer com isto:

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

Então o URL Git a usar para clonar o projeto será

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

E o comando usado para clonar o projeto para um repositório Git local será:

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

**Nota**: poderá ser-lhe pedido um nome de utilizador e uma palavra-passe. Consulte [Autenticação por palavra-passe da integração Git](/latex/overleaf-learn-latex-pt/base-de-conhecimento/043-git-integration-password-based-authentication.md)

#### Overleaf Server Pro (versão 4.0 ou posterior)

**Nota**: A integração Git-bridge não está ativada por defeito no Server Pro. Consulte o nosso [Integração Git](https://github.com/overleaf/overleaf/wiki/Git-Integration) guia para instruções sobre como a ativar.

Se estiver a usar o Overleaf Server Pro e o URL do seu projeto se parecer com isto:

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

Então o URL Git usado ao clonar o projeto será:

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

E o comando usado para clonar o projeto para um repositório Git local usando a linha de comandos Git será:

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

**Nota**: Poderá ser-lhe pedida uma palavra-passe. Consulte: [Tokens de autenticação da integração Git](/latex/overleaf-learn-latex-pt/base-de-conhecimento/042-git-integration-authentication-tokens.md)

### Criar um projeto Overleaf a partir de um repositório Git existente

Se tiver um repositório existente, pode adicionar um projeto Overleaf como um repositório remoto. Há alguns comandos abaixo que terá de executar para começar. Tenha em atenção que o Overleaf apenas suporta um histórico linear para cada projeto. A integração Git impõe esta limitação ao restringir o número de ramificações a uma. Essa única ramificação está atualmente codificada de forma fixa para se chamar `master`.

1. Primeiro, assumimos que tem um repositório git no seu computador numa pasta chamada `my-paper`. (Também pode estar alojado no GitHub, GitLab, Bitbucket, etc., mas tem de o ter também clonado localmente.)
2. Criar [um novo projeto](/latex/overleaf-learn-latex-pt/base-de-conhecimento/031-creating-a-document-in-overleaf.md) no Overleaf. Como qualquer conteúdo no projeto será substituído, use a opção de projeto 'Blank' ao criar este projeto e elimine o `main.tex` ficheiro no Overleaf.
3. Encontre o URL Git do projeto (consulte [acima](#cloning-your-project-as-a-local-repository)).

   ![Git-bridge-url.png](/files/8d758de5dff50d942a3c796e09b71a9be3b7fe48)
4. Adicione o URL Git do projeto como remoto no seu projeto local.

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

   (Certifique-se de usar a sua própria ligação, e não a ligação de exemplo.)
5. Obtenha o conteúdo mais recente do projeto Overleaf e faça a fusão com a sua ramificação master.

   ```
   $ git checkout master
   $ git pull overleaf master --allow-unrelated-histories --rebase=false
   ```
6. Envie o seu projeto para o Overleaf.

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

   Se quiser usar um nome de ramificação diferente localmente, por ex. `my-branch`, pode enviar as suas alterações com um alias:

   ```
   $ git push overleaf my-branch:master
   ```
7. Visite o projeto no Overleaf. As suas alterações deverão estar lá. (Poderá ter de abrir o menu do Projeto Overleaf para descobrir qual ficheiro foi definido como o ficheiro principal do documento e, possivelmente, alterar esta seleção inicial.)

### Commits Git e a integração Git do Overleaf

O Overleaf tem um [sistema de Histórico](/latex/overleaf-learn-latex-pt/mais-topicos/49-using-the-history-feature.md) interno que permite colaboração simultânea dentro de um projeto Overleaf. Isto não é o mesmo que Git, por isso a integração Git do Overleaf é essencialmente uma tradução do mecanismo de histórico e versionamento do Overleaf para Git. Isto permite muitos casos de utilização suportados por Git, mas não lhe permite trabalhar no Overleaf como se fosse uma implementação Git completa.

#### Quando são criados commits?

Quando emite um `pull` ou `fetch` comando, se não existir nenhum commit para o estado atual do projeto, é criado dinamicamente um novo commit. Quando faz `push` de ficheiros do seu repositório local para o remoto do Overleaf, é também criado nesse momento um commit, que ficará visível em quaisquer clonagens futuras que faça do projeto Overleaf. Quando você ou outras pessoas estiverem a editar no Overleaf, os commits não serão gerados automaticamente até serem necessários.

#### Forçar commits

Se quiser forçar a criação de um commit num ponto específico do histórico do Overleaf, pode fazê-lo ao [atribuir um rótulo a uma versão](/latex/overleaf-learn-latex-pt/mais-topicos/49-using-the-history-feature.md) no histórico do Overleaf. A versão com rótulo terá o seu próprio hash de commit, mesmo que não faça um git pull imediatamente. Só será criado um commit a partir de um rótulo se não tiverem sido feitos outros commits mais recentemente do que o ponto do histórico do Overleaf que está a ser rotulado.

#### Rastrear a autoria

A natureza just-in-time dos commits da integração Git do Overleaf significa que, se tiver havido várias alterações do lado do Overleaf antes de ser gerado um commit, o autor da alteração mais recente será listado como autor do commit.

Ao trabalhar com coautores, é útil criar um rótulo (gerando um commit) depois de cada colaborador concluir uma atualização significativa - isto cria uma sequência de commits visível no Git que reflete da forma mais próxima as alterações que estão a acontecer no Overleaf.

### Sincronização com outro remoto

A integração Git do Overleaf permite que o seu projeto Overleaf atue como um repositório remoto para repositórios locais. No entanto, poderá querer sincronizar o seu projeto Overleaf com outro remoto, alojado no GitHub, GitLab ou noutro serviço de alojamento Git.

Se estiver a sincronizar o seu projeto com um repositório alojado no GitHub (<https://github.com/>), talvez queira usar a [funcionalidade direta de sincronização GitHub do Overleaf](/latex/overleaf-learn-latex-pt/base-de-conhecimento/044-github-synchronization.md) .

Se estiver a sincronizar o seu projeto com o GitLab, GitHub Enterprise ou outro anfitrião, pode usar a integração Git do Overleaf para configurar um repositório local intermediário.

Seguindo as instruções acima para [clonar o seu projeto](#cloning-your-project-as-a-local-repository) ou [ligar um projeto a um repositório existente](#creating-an-overleaf-project-from-an-existing-git-repository), terá um repositório local que pode enviar/receber alterações do Overleaf. Em seguida, pode adicionar um segundo remoto a este repositório que aponte para o seu repositório alojado. A sua cópia local precisará de ter dois remotos para que aponte tanto para o seu anfitrião Git como para o projeto Overleaf.

Embora não exista uma ligação direta entre o projeto Overleaf e o seu repositório Git, isto permitirá mantê-los sincronizados.

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

### Adicionar um projeto Overleaf como um submódulo Git

Cada projeto no Overleaf atua como um repositório Git independente, mas se quiser organizar vários desses projetos num único repositório Git, pode adicionar o repositório de cada projeto como um submódulo Git da forma habitual. Pode então fazer push e pull de cada repositório de submódulo de e para o Overleaf individualmente e ainda tê-los reunidos como submódulos num projeto maior.

**Nota:** Embora os projetos Overleaf possam ser submódulos dentro de outro repositório, os próprios projetos Overleaf não podem conter outros submódulos.

### 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 lida bem com links simbólicos. Um link simbólico pode ser enviado para um projeto Overleaf, mas será convertido num ficheiro normal e irá sobrescrever o link simbólico local da próxima vez que o projeto for obtido.

**Tags**: O sistema Git do Overleaf não suporta tags.

**Permissões de ficheiro**: O sistema Git do Overleaf não preserva as permissões de execução. Para contornar isto, pode executar `git config core.fileMode false` na sua cópia local do repositório. Em seguida, pode repor as permissões de execução em quaisquer ficheiros afetados. Desta forma, elas não serão novamente modificadas em operações Git subsequentes.

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

**Submódulos Git:** Os projetos 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, é sugerido usar a [funcionalidade de adicionar a partir de outro projeto](/latex/overleaf-learn-latex-pt/base-de-conhecimento/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md).

**Renomear pastas**: Se um utilizador renomear uma pasta e enviar a alteração para o Overleaf, o projeto manterá uma pasta vazia com o nome antigo, além da nova pasta. (Por exemplo, renomear images/ para img/ deixará duas pastas no projeto: img/, contendo os ficheiros de imagem, e images/, que ficará vazia. Isto pode causar problemas quando um utilizador renomeia uma pasta e cria um novo ficheiro com o mesmo nome da pasta antiga, num único commit. O sistema Git do Overleaf rejeitará este commit. Neste caso, recomendamos dividir o commit em duas partes e apagar a pasta remanescente.

**Renomear ficheiros e mover ficheiros:** Uma renomeação de ficheiro no seu repositório local torna-se uma eliminação e criação do lado do Overleaf. Isto pode resultar na perda de metadados associados a um ficheiro do lado do Overleaf, causando a eliminação de alterações rastreadas e comentários. Não é recomendado mover ou renomear ficheiros do lado Git que tenham alterações rastreadas ou comentários no Overleaf.

**Controlo de alterações e comentários**: Infelizmente, pushes do Git para o Overleaf podem resultar na perda ou deslocamento de alterações rastreadas e comentários; consequentemente, não recomendamos misturar o uso ativo do Git com o uso de alterações rastreadas e/ou comentários.

### Resolução de problemas

#### Erros de repositório não encontrado

Se estiver a ver um erro de Repositório não encontrado, é provável que esteja a ser usado o URL errado. O URL correto pode ser encontrado ao clicar na opção Git no Menu dentro do projeto. Para o Overleaf Cloud, a integração Git é uma funcionalidade premium, pelo que só estará disponível se o proprietário do projeto tiver uma subscrição paga do Overleaf ou tiver recebido acesso à funcionalidade (por exemplo, ao participar em testes beta iniciais).

#### Erros de autenticação falhada

Consulte as instruções de resolução de problemas para [Tokens de autenticação da integração Git](/latex/overleaf-learn-latex-pt/base-de-conhecimento/042-git-integration-authentication-tokens.md) ou [Autenticação por palavra-passe da integração Git](/latex/overleaf-learn-latex-pt/base-de-conhecimento/043-git-integration-password-based-authentication.md) dependendo do método de início de sessão que estiver a utilizar.

#### Limites de taxa

O rate limiting do Git Bridge geralmente não ocorre quando as operações Git são executadas manualmente. Alguns clientes Git podem ser configurados para tentar verificar automaticamente os remotos em busca de alterações, o que pode levar, em alguns casos, a erros de limitação de taxa. Geralmente, desativar qualquer sondagem automática ou reduzir a frequência das operações Git deverá resolver estes problemas.

#### Falha ao enviar referências

Uma falha ao enviar algumas referências para o projeto remoto pode ser causada por [exceder as limitações de tamanho ou número de ficheiros de um projeto](/latex/overleaf-learn-latex-pt/base-de-conhecimento/119-overleaf-plan-limits.md) ou por incluir tipos de ficheiro não suportados (links simbólicos, ou LFS, por exemplo). Reveja as limitações conhecidas listadas acima para identificar quaisquer ficheiros problemáticos no commit.

Em alguns casos, aumentar a definição **postBuffer** pode resolver falhas ao enviar referências do seu repositório local para o projeto Overleaf.

Primeiro, pode verificar a sua definição atual com o comando:

```
     git config http.postBuffer
```

Se não houver qualquer saída, isso significa que o valor predefinido de 1 MB está a ser usado.

De seguida, experimente o comando

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

que definirá o valor para 10 MB.

Agora pode tentar enviar o commit (para o projeto original ou para o novo). Se isso não funcionar, pode voltar à definição anterior ou remover a definição com:

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

#### Tempos limite

Commits Git que incluam um grande número de alterações podem potencialmente levar a tempos limite. Se encontrar um tempo limite, tente dividir o commit em alterações menores. Se o problema persistir, considere definir o **postBuffer** para 10 MB, conforme descrito acima.


---

# 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/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.
