Синхронизация fork-a на github с основным репозиторием

Здравствуй, мой дорогой друг!

Alexander Dukhovnyak
3 min readFeb 22, 2016

Я наставник **some secret organization** В мои обязанности входит проверка домашних заданий и помощь в поиске истины на сложном пути к гордому званию Frontend-разработчик.

В **some secret organization** весь учебный процесс построен через git. Вся работа по проверке ведется через Github репозитории. Это здорово, так как очень удобно контролировать процесс, а студенты учатся работе с git, подготавливая почву для работы над реальными проектами.

Работа строиться по схеме:

мастер ветка -> новая ветка под задачу -> merge с релизной веткой -> актуализация своего мастера

В чем проблема?

Часто ребята, начинающие работать из консоли, сталкиваются с проблемами актуализации состояния master ветки из основного репозитория. Еще усложняет ситуацию тот факт, что у многих есть языковой барьер и игра с гугл в “Вопрос-Ответ” сильно усложняется.

Я решил написать простой мануал, на родном языке, с картинками, чтобы в случае необходимости делиться ссылкой и радоваться жизни.

Поехали!

Если вдруг Вам понадобиться синхронизировать свою master ветку или любую другую ветку своего fork-а с основным репозиторием. Делаем следующее:

// Добавляем адрес для отслеживаемой веткой (upstream branch) основного репозитория
git remote add upstream https://github.com/god/HelloWorldRepo.git
// Просматриваем все удаленные ветки
git remote -v

Ключ [-v | — verbose] необходим для показа подробной информации о удаленных ветках.

Хочу заметить, что после выполнения команды git remote add upstream должны появиться репозиторий upstream, как видно на картинке.

// Получаем себе веточки
git fetch upstream
// Делаем merge нужной нам ветки с master основного репозитория
git merge upstream/master
// Убеждаемся что все получилось. В данном случае разница всего в 1 commit
git status
// Отправляем все подученные изменения на remote branchgit commit -am 'merge'
git push

Прошу заметить, что если вы произвели merge с новой локальной веткой, стоит использовать команду:

// Команда отправляет данные и новую ветку на remote сервер
git push origin new-branch

Вот собственно и все. Не так страшно как может показаться на первый взгляд. Так что, ничего не бойтесь и двигайтесь вперед.

Да прибудет с Вами сила!

Если было полезно и интересно — купите мне книгу!

--

--