# Obtener cambios de un repositorio remoto

Puedes usar los comandos Git más frecuentes para acceder a repositorios remotos.

## Opciones para obtener cambios

Estos comandos son muy útiles al interactuar con [un repositorio remoto](/es/enterprise-server@3.22/get-started/git-basics/about-remote-repositories).
`clone` y `fetch` descargan código remoto desde la dirección URL remota de un repositorio al equipo local, `merge` se usa para combinar el trabajo de diferentes personas con el suyo, y `pull` es una combinación de `fetch` y `merge`.

## Clonar un repositorio

Para obtener una copia completa del repositorio de otro usuario, use `git clone` de esta forma:

```shell
$ git clone https://HOSTNAME/USERNAME/REPOSITORY.git
# Clones a repository to your computer
```

Puede elegir [entre varias direcciones URL diferentes](/es/enterprise-server@3.22/get-started/git-basics/about-remote-repositories) al clonar un repositorio. Mientras estés registrado en GitHub, estas direcciones URL están disponibles en la página principal del repositorio al hacer clic en **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code**.

![Captura de pantalla de la página principal de un repositorio. Un botón verde "Código" está resaltado en naranja y se expande para mostrar la dirección URL HTTPS del repositorio.](/assets/images/help/repository/remotes-url-global-nav-update.png)

Al ejecutar `git clone`, tienen lugar las siguientes acciones:

* Se crea una carpeta con el nombre `repo`
* Esta carpeta se inicializa como un repositorio de Git.
* Se crea un repositorio remoto denominado `origin`, que apunta a la dirección URL desde la que ha realizado la clonación
* Todos los archivos y confirmaciones del repositorio se descargan aquí.
* La rama predeterminada está desmarcada

Para cada rama `foo` del repositorio remoto, se crea una rama `refs/remotes/origin/foo` de seguimiento remoto correspondiente en el repositorio local. Normalmente, puedes abreviar esos nombres de ramas de seguimiento remoto a `origin/foo`.

## Extraer cambios de un repositorio remoto

Use `git fetch` para recuperar el nuevo trabajo realizado por otras personas. Al capturar desde un repositorio se obtienen todas las ramas de seguimiento remoto nuevas y etiquetas *sin* combinar estos cambios en las ramas propias.

Si ya tiene un repositorio local con una URL remota configurada para el proyecto deseado, puede capturar toda la información nueva si usa `git fetch *remotename*` en el terminal:

```shell
$ git fetch REMOTE-NAME
# Fetches updates made to a remote repository
```

De otra forma, siempre puedes agregar un remoto nuevo y luego recuperarlo. Para más información, consulta [Administrar repositorios remotos](/es/enterprise-server@3.22/get-started/git-basics/managing-remote-repositories).

## Fusionar los cambios en tu rama local

La fusión combina tus cambios locales con los cambios realizados por otros.

Por lo general, fusionas una rama de seguimiento remoto (es decir, una rama extraída desde un repositorio remoto) con tu rama local:

```shell
$ git merge REMOTE-NAME/BRANCH-NAME
# Merges updates made online with your local work
```

## Extraer cambios de un repositorio remoto

`git pull` es un método abreviado útil para completar `git fetch` y `git merge`en el mismo comando:

```shell
$ git pull REMOTE-NAME BRANCH-NAME
# Grabs online updates and merges them with your local work
```

Como `pull` realiza una combinación en los cambios recuperados, debe asegurarse de que el trabajo local se haya confirmado antes de ejecutar el comando `pull`. Si se produce [un conflicto de combinación](/es/enterprise-server@3.22/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line) que no puede resolver, o si decide salir de la combinación, puede usar `git merge --abort` para restaurar la rama al estado que tenía antes de extraerla.

## Información adicional

* ["Trabajando con remotos" del libro *Pro Git*](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes)