> 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/es/base-de-conocimientos/040-git-integration.md).

# integración de Git

**La integración de Git de Overleaf** es una [función premium](/latex/es/base-de-conocimientos/120-overleaf-premium-features.md). Las funciones premium de Overleaf están disponibles para los participantes en [Overleaf Commons](https://www.overleaf.com/for/universities), los miembros de grupos [suscripciones](https://www.overleaf.com/for/groups), y los propietarios de suscripciones individuales [suscripciones](https://www.overleaf.com/user/subscription/plans). La integración de Git está disponible en Overleaf Cloud y Overleaf Server Pro (versión 4.0 y posteriores).

### ¿Qué es la integración de Git de Overleaf?

La integración de Git de Overleaf te permite obtener una URL de Git desde tu proyecto de Overleaf y tratarlo como un repositorio Git remoto (repo). Puedes clonar tu proyecto en un repositorio Git local y trabajar en él localmente, enviando cambios a tu proyecto desde tu máquina local y trayendo las actualizaciones que se están produciendo en el editor en línea de Overleaf a tu repositorio local.

Esto te permite trabajar en tu proyecto localmente en aquellos momentos en que trabajar en línea no es posible, usar un editor local diferente de tu elección cuando trabajes en un proyecto de Overleaf, o añadir fácilmente salidas de otro software local a tu proyecto de Overleaf.

Puedes obtener la URL de Git y el comando de clonación para tu proyecto desde la opción Git en el menú de Overleaf de tu proyecto.

![Menú del proyecto git.png](/files/3ce563f75cf9353ed9bea55fa3a44369d8f30bfc)

### Cómo autenticarse al usar la integración de Git

Cuando realizas una operación de Git, como clonar, pull o push en tu proyecto remoto de Overleaf, se te pedirá que te autentiques.

Para acceder a tu proyecto de Overleaf desde Git, debes usar autenticación basada en tokens de Overleaf. Para obtener instrucciones paso a paso, consulta: [Autenticación basada en tokens](/latex/es/base-de-conocimientos/042-git-integration-authentication-tokens.md).

### Clonación de tu proyecto como repositorio local

Desde el [**Menú**](/latex/es/base-de-conocimientos/148-using-the-overleaf-project-menu.md) dentro de tu proyecto, puedes seleccionar Git en las opciones de Sincronización. Esto abrirá un cuadro de diálogo que mostrará el `git clone` comando que se debe usar al crear tu repositorio local.

![Menú del proyecto git.png](/files/3ce563f75cf9353ed9bea55fa3a44369d8f30bfc)

Como alternativa, puedes encontrar la URL de Git a partir de la URL del proyecto (la URL en la barra de direcciones del navegador cuando estás en un proyecto).

#### Overleaf Cloud

Si estás usando Overleaf Cloud y la URL de tu proyecto de Overleaf tiene este aspecto:

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

Entonces, la URL de Git que se usará para clonar el proyecto será

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

Y el comando usado para clonar el proyecto en un repositorio Git local será:

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

**Nota**: se te puede solicitar un nombre de usuario y una contraseña. Consulta [Autenticación por contraseña de la integración de Git](/latex/es/base-de-conocimientos/043-git-integration-password-based-authentication.md)

#### Overleaf Server Pro (versión 4.0 o posterior)

**Nota**: La integración Git-bridge no está habilitada de forma predeterminada en Server Pro. Consulta nuestra [Integración de Git](https://github.com/overleaf/overleaf/wiki/Git-Integration) guía para obtener instrucciones sobre cómo habilitarla.

Si estás usando Overleaf Server Pro y la URL de tu proyecto tiene este aspecto:

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

Entonces, la URL de Git usada al clonar el proyecto será:

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

Y el comando usado para clonar el proyecto en un repositorio Git local usando la línea de comandos de Git será:

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

**Nota**: Es posible que se te solicite una contraseña. Consulta: [Tokens de autenticación de la integración de Git](/latex/es/base-de-conocimientos/042-git-integration-authentication-tokens.md)

### Crear un proyecto de Overleaf a partir de un repositorio Git existente

Si ya tienes un repositorio existente, puedes añadir un proyecto de Overleaf como repositorio remoto. Hay algunos comandos a continuación que tendrás que ejecutar para empezar. Ten en cuenta que Overleaf solo admite un historial lineal para cada proyecto. La integración de Git impone esta limitación restringiendo el número de ramas a una. Esa única rama actualmente está codificada para llamarse `master`.

1. Primero, asumimos que tienes un repositorio git en tu ordenador en una carpeta llamada `my-paper`. (También podría estar alojado en GitHub, GitLab o Bitbucket, etc., pero también necesitas tenerlo clonado localmente.)
2. Crear [un nuevo proyecto](/latex/es/base-de-conocimientos/031-creating-a-document-in-overleaf.md) en Overleaf. Como cualquier contenido del proyecto se sobrescribirá, usa la opción de proyecto 'Blank' al crear este proyecto y elimina el `main.tex` archivo en Overleaf.
3. Encuentra la URL de Git del proyecto (consulta [arriba](#cloning-your-project-as-a-local-repository)).

   ![Git-bridge-url.png](/files/afb8f7ee08e631510cc90801db20950272194646)
4. Añade la URL de Git del proyecto como un remoto en tu proyecto local.

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

   (Asegúrate de usar tu propio enlace, no el enlace de ejemplo.)
5. Trae el contenido más reciente del proyecto de Overleaf y fusiónalo en tu rama master.

   ```
   $ git checkout master
   $ git pull overleaf master --allow-unrelated-histories --rebase=false
   ```
6. Envía tu proyecto a Overleaf.

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

   Si quieres usar un nombre de rama diferente localmente, p. ej., `my-branch`, puedes enviar tus cambios con un alias:

   ```
   $ git push overleaf my-branch:master
   ```
7. Visita el proyecto en Overleaf. Tus cambios deberían estar allí. (Puede que tengas que abrir el menú del proyecto de Overleaf para encontrar qué archivo se ha establecido como el archivo del documento principal y, posiblemente, cambiar esta selección inicial.)

### Los commits de Git y la integración de Git de Overleaf

Overleaf tiene un [sistema de historial](/latex/es/mas-temas/49-using-the-history-feature.md) que permite la colaboración simultánea dentro de un proyecto de Overleaf. Esto no es lo mismo que Git, así que la integración de Git de Overleaf es, esencialmente, una traducción del historial y el mecanismo de versionado de Overleaf a Git. Esto permite muchos casos de uso habilitados por Git, pero no te permite trabajar dentro de Overleaf como si fuera una implementación completa de Git.

#### ¿Cuándo se crean los commits?

Cuando ejecutas un `pull` o `fetch` comando, si no existe ningún commit para el estado actual del proyecto, se crea dinámicamente un nuevo commit. Cuando haces `push` archivos desde tu repositorio local al remoto de Overleaf, también se crea un commit en ese momento, que será visible en cualquier clon futuro que hagas del proyecto de Overleaf. Cuando tú u otras personas estén editando en Overleaf, los commits no se generarán automáticamente hasta que sea necesario.

#### Forzar commits

Si quieres forzar que se cree un commit en un punto concreto del historial de Overleaf, puedes hacerlo [etiquetando una versión](/latex/es/mas-temas/49-using-the-history-feature.md) en el historial de Overleaf. La versión etiquetada tendrá su propio hash de commit incluso si no haces un git pull inmediatamente. Solo se creará un commit a partir de una etiqueta si no ha habido ningún otro commit realizado más recientemente que el punto del historial de Overleaf que se está etiquetando.

#### Seguimiento de la autoría

La naturaleza justo a tiempo de los commits de la integración de Git de Overleaf significa que, si ha habido varios cambios en el lado de Overleaf antes de que se genere un commit, el autor del cambio más reciente aparecerá como autor del commit.

Cuando se trabaja con coautores, resulta útil crear una etiqueta (generando un commit) después de que cada colaborador haya completado una actualización importante; esto crea una secuencia de commits visible en Git que refleja lo más fielmente posible los cambios que están ocurriendo en Overleaf.

### Sincronización con otro remoto

La integración de Git de Overleaf permite que tu proyecto de Overleaf actúe como un repositorio remoto para repositorios locales. Sin embargo, quizá quieras sincronizar tu proyecto de Overleaf con otro remoto, alojado en GitHub, GitLab u otro servicio de alojamiento de Git.

Si estás sincronizando tu proyecto con un repositorio alojado en GitHub (<https://github.com/>), puede que quieras usar la función directa de Overleaf de [sincronización con GitHub](/latex/es/base-de-conocimientos/044-github-synchronization.md) función.

Si estás sincronizando tu proyecto con GitLab, GitHub Enterprise u otro host, puedes usar la integración de Git de Overleaf para configurar un repositorio local intermediario.

Siguiendo las instrucciones anteriores para [clonar tu proyecto](#cloning-your-project-as-a-local-repository) o [vincular un proyecto a un repositorio existente](#creating-an-overleaf-project-from-an-existing-git-repository), tendrás un repositorio local que podrá enviar/recibir cambios desde Overleaf. Luego puedes añadir un segundo remoto a este repositorio que apunte a tu repositorio alojado. Tu repositorio local necesitará dos remotos para que apunte tanto a tu host de Git como al proyecto de Overleaf.

Aunque no habrá una conexión directa entre el proyecto de Overleaf y tu repositorio Git, esto te permitirá mantenerlos sincronizados.

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

### Añadir un proyecto de Overleaf como submódulo de Git

Cada proyecto en Overleaf actúa como un repositorio Git independiente, pero si quieres organizar varios de esos proyectos en un solo repositorio Git, puedes añadir el repositorio de cada proyecto como un submódulo de Git de la forma habitual. Luego puedes hacer push y pull de cada repositorio submódulo hacia/desde Overleaf de forma individual y seguir teniéndolos reunidos como submódulos en un proyecto más grande.

**Nota:** Aunque los proyectos de Overleaf pueden ser submódulos dentro de otro repositorio, los proyectos de Overleaf en sí no pueden contener otros submódulos.

### Limitaciones conocidas

**Ramas**: El sistema Git de Overleaf no admite la creación de ramas.

**Enlaces simbólicos**: El sistema Git de Overleaf no maneja bien los enlaces simbólicos. Un enlace simbólico puede enviarse a un proyecto de Overleaf, pero se convertirá en un archivo normal y sobrescribirá el enlace simbólico local la próxima vez que se obtenga el proyecto.

**Etiquetas**: El sistema Git de Overleaf no admite etiquetas.

**Permisos de archivo**: El sistema Git de Overleaf no conserva los permisos de ejecución. Para evitarlo, puedes ejecutar `git config core.fileMode false` en tu clon local del repositorio. Luego puedes restablecer los permisos de ejecución en cualquier archivo afectado. De esta forma, no volverán a modificarse con operaciones Git posteriores.

**Git LFS:** Los proyectos de Overleaf no admiten Git Large File Storage.

**Submódulos de Git:** Los proyectos de Overleaf pueden actuar como submódulos de Git dentro de otros repositorios, pero no pueden contener otros submódulos de Git. Para referenciar archivos de otros proyectos, se sugiere usar la [función de añadir desde otro proyecto](/latex/es/base-de-conocimientos/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md).

**Cambio de nombre de carpetas**: Si un usuario cambia el nombre de una carpeta y envía el cambio a Overleaf, el proyecto conservará una carpeta vacía con el nombre antiguo, además de la nueva carpeta. (Por ejemplo, cambiar el nombre de images/ a img/ dejará dos carpetas en el proyecto: img/, que contendrá los archivos de imagen, e images/, que estará vacía. Esto puede causar problemas cuando un usuario cambia el nombre de una carpeta y crea un archivo nuevo con el mismo nombre que la carpeta antigua, en un solo commit. El sistema Git de Overleaf rechazará este commit. En este caso, recomendamos dividir el commit en dos partes y eliminar la carpeta restante.

**Cambio de nombre y traslado de archivos:** Un cambio de nombre de archivo en tu repositorio local se convierte en una eliminación y creación en el lado de Overleaf. Esto puede provocar la pérdida de metadatos asociados con un archivo en el lado de Overleaf, causando la eliminación de cambios rastreados y comentarios. No se recomienda mover o cambiar de nombre archivos en el lado de Git que tengan cambios rastreados o comentarios de Overleaf.

**Control de cambios y comentarios**: Lamentablemente, los push de Git a Overleaf pueden provocar la pérdida o el desplazamiento de cambios rastreados y comentarios; por lo tanto, no recomendamos mezclar el uso activo de Git con el uso de cambios rastreados y/o comentarios.

### Solución de problemas

#### Errores de repositorio no encontrado

Si ves un error de repositorio no encontrado, es probable que se esté usando la URL incorrecta. La URL correcta se puede encontrar haciendo clic en la opción Git del menú dentro del proyecto. Para Overleaf Cloud, la integración de Git es una función premium, por lo que solo estará disponible si el propietario del proyecto tiene una suscripción de pago a Overleaf o se le ha concedido acceso a la función (por ejemplo, al participar en pruebas beta tempranas).

#### Errores de autenticación fallida

Consulta las instrucciones de solución de problemas para [Tokens de autenticación de la integración de Git](/latex/es/base-de-conocimientos/042-git-integration-authentication-tokens.md) o [Autenticación por contraseña de la integración de Git](/latex/es/base-de-conocimientos/043-git-integration-password-based-authentication.md) según el método de inicio de sesión que estés usando.

#### Límites de tasa

La limitación de tasa de Git Bridge generalmente no ocurre cuando las operaciones de Git se ejecutan manualmente. Algunos clientes Git pueden configurarse para intentar consultar automáticamente los remotos en busca de cambios, lo que en algunos casos puede provocar errores de limitación de tasa. Por lo general, desactivar cualquier sondeo automatizado o reducir la frecuencia de las operaciones de Git debería resolver estos problemas.

#### Error al enviar referencias

Un fallo al enviar alguna referencia al proyecto remoto puede deberse a [superar las limitaciones de tamaño o número de archivos de un proyecto](/latex/es/base-de-conocimientos/119-overleaf-plan-limits.md) o a incluir tipos de archivo no admitidos (enlaces simbólicos o LFS, por ejemplo). Revisa las limitaciones conocidas enumeradas arriba para identificar cualquier archivo problemático en el commit.

En algunos casos, aumentar la **postBuffer** configuración puede solucionar los fallos al enviar referencias desde tu repositorio local al proyecto de Overleaf.

Primero, puedes comprobar tu configuración actual con el comando:

```
     git config http.postBuffer
```

Si no hay salida, eso significa que se usa el valor predeterminado de 1 MB.

A continuación, prueba el comando

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

que establecerá el valor en 10 MB en su lugar.

Ahora puedes intentar enviar el commit (al proyecto original o al nuevo). Si eso no funciona, puedes volver a tu configuración anterior o eliminar la configuración con:

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

#### Tiempos de espera

Los commits de Git que incluyen una gran cantidad de cambios pueden provocar tiempos de espera. Si encuentras un tiempo de espera, intenta dividir el commit en cambios más pequeños. Si el problema persiste, considera establecer la **postBuffer** a 10 MB como se describe arriba.


---

# 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/es/base-de-conocimientos/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.
