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.
В диалоге отмечаем нужный нам Remote, нужную нам ветку (по умолчанию выбрана текущая рабочая) и нажимаем Pull.
Дополнительные опции выставляются только при необходимости и если это требуется правилами.
Результат выполнения, если всё было хорошо:
Если у репозитория несколько Remote, то для обновления из всех источников требуется или последовательное выполнение pull с изменением origin, либо выполнения Fetch.
Нажимаем Fetch
По умолчанию уже установлены нужные нам галки.
Первая отвечает за получение информации из всех Remote, а вторая за удаление веток, которые были удалены в этом remote, но которые могут еще отображаться в вашем дереве.
Если всё хорошо, то будет такой результат:
Если были удалены ветки, то вывод будет расширен.