7.pull.from.remote.md


Получаем изменения из Remote

Если подразумевается работа в команде, то кроме отправки (push) изменений в Remote, так же важным шагом является и получение (pull) изменений из Remote.
Конечно, это зависит от принятой модели ветвления в команде и организации работы.
Pull необходим для получения изменений в репозитории от коллег/участников проекта.
Это позволяет иметь актуальное состояние репозитория.
Так же, крайне важно, периодически делать Fetch (полная актуализация репозитория и удаление влитых веток.)
Важно понимать, что Pull это не просто получение изменений по текущей ветке, это слияние текущей рабочей ветки с той, которая выбрана из remote.
Таким образом, если у нас локальная рабочая ветка work и мы хотим сделать для неё pull, в котором выбираем remote-ветку work, то это будет merge двух веток: локальной и remote.

Git-консоль

При работе из консоли требуется выполнить команду вида:

git pull -remote-

Пример:

git pull origin

Для получения изменений по ветке, в которой сейчас не ведется работа, требуется выполнить команду:

git pull origin -branch_name-

Пример:

git pull origin next

В результате ветка next будет влита в нашу текущую ветку.

Для получения изменений из всех Remote требуется выполнить команду:

pull –all

GUI-клиент

В GUI-клиенте может отличаться от клиента к клиенту.
В SourceTree это делается так:

Нажимаем кнопку Pull
В диалоге отмечаем галками нужные нам ветки (в примере только одна) и нажимаем Push.
pull.0.png

В диалоге отмечаем нужный нам Remote, нужную нам ветку (по умолчанию выбрана текущая рабочая) и нажимаем Pull.
Дополнительные опции выставляются только при необходимости и если это требуется правилами.

Результат выполнения, если всё было хорошо:

pull.1.png

Если у репозитория несколько Remote, то для обновления из всех источников требуется или последовательное выполнение pull с изменением origin, либо выполнения Fetch.

Нажимаем Fetch
По умолчанию уже установлены нужные нам галки.
Первая отвечает за получение информации из всех Remote, а вторая за удаление веток, которые были удалены в этом remote, но которые могут еще отображаться в вашем дереве.

fetch.0.png

Если всё хорошо, то будет такой результат:
Если были удалены ветки, то вывод будет расширен.

fetch.1.png

Ссылка на вики репозиторий