# Получение изменений из удаленного репозитория

Для доступа к удаленным репозиториям можно использовать распространенные команды Git.

## Параметры для получения изменений

Эти команды особенно полезны при взаимодействии с [удаленным репозиторием](/ru/enterprise-server@3.22/get-started/git-basics/about-remote-repositories). Команды `clone` и `fetch` позволяют скачать удаленный код с удаленного URL-адреса репозитория на локальный компьютер, `merge` используется для слияния работы, проделанной вами и другими пользователями, а `pull` представляет собой комбинацию команд `fetch` и `merge`.

## Клонирование репозитория

Чтобы получить полную копию репозитория другого пользователя, используйте команду `git clone` в следующем виде:

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

При клонировании репозитория можно выбрать один из [нескольких различных URL-адресов](/ru/enterprise-server@3.22/get-started/git-basics/about-remote-repositories). При входе в GitHubэти URL-адреса доступны на главной странице репозитория при нажатии кнопки **<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.**

![Снимок экрана: главная страница репозитория. Зеленая кнопка "Код" выделена оранжевым цветом и развернута, чтобы отобразить URL-адрес HTTPS для репозитория.](/assets/images/help/repository/remotes-url-global-nav-update.png)

При выполнении команды `git clone` происходит следующее:

* Создается новая папка с именем `repo`.
* Она инициализируется как репозиторий Git.
* Создается удаленный узел с именем `origin`, ведущий на URL-адрес, из которого вы клонировали репозиторий.
* С этого адреса скачиваются все файлы и фиксации репозитория.
* Извлекается ветвь по умолчанию.

Для каждой ветви `foo` в удаленном репозитории создается соответствующая ветвь удаленного отслеживания `refs/remotes/origin/foo` в локальном репозитории. Обычно имена ветвей удаленного отслеживания можно сокращать до `origin/foo`.

## Получение изменений из удаленного репозитория

Используйте команду `git fetch` для получения новых работ, выполненных другими людьми. Команда получения данных из репозитория захватывает все новые ветви и теги удаленного отслеживания, *не* сливая эти изменения с вашими собственными ветвями.

Если у вас уже есть локальный репозиторий с удаленным URL-адресом, настроенный для желаемого проекта, вы можете получать все новые сведения, выполняя в терминале команду `git fetch *remotename*`:

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

Если нет, вы всегда можете добавить новый удаленный репозиторий, а затем получить из него данные. Дополнительные сведения см. в разделе [Управление удаленными репозиториями](/ru/enterprise-server@3.22/get-started/git-basics/managing-remote-repositories).

## Слияние изменений с локальной ветвью

Слияние объединяет локальные изменения с изменениями, внесенными другими людьми.

Обычно сливаются ветвь удаленного отслеживания (т. е. ветвь, полученная из удаленного репозитория) и локальная ветвь:

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

## Вытягивание изменений из удаленного репозитория

`git pull` — это удобное сочетание клавиш для выполнения `git fetch` и `git merge` в одной команде:

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

Поскольку `pull` приводит к слиянию полученных изменений, перед выполнением команды `pull` нужно зафиксировать локальную работу Если возникнет [конфликт слияния](/ru/enterprise-server@3.22/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line), который вы не сможете разрешить, или вы решите выйти из слияния, используйте команду `git merge --abort`, чтобы вернуть ветвь туда, где она находилась до вытягивания.

## Дополнительные материалы

* ["Работа с удаленными пользователями" из книги \_\_ Pro Git](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes)