На этом уроке мы попробуем решить проблему загрузки на сервер от созданного «Пингвина».
Дата отправки отчёта:
27 сентября 2018 г.
Задание выполнено: за
1 час. 43 мин.
Чему научился:
Создали отдельную ветку, в ней пингвина. таким образом спокойно можем обновить ветку мастер с сервера. После это пытаемся слить пингвина и обновленную с сервера мастер, что само собой не получается. (Файл Zoo мастера имеет создание жирафа и льва, а в ветке пингвина, заместо этого, идет создание пингвина). Можно исправить конфликт - сказать что нам нужно и то и то, но
мы решили откатить слияние, и добавить ветку пингвина на сервер, отдельно, чтобы с ней мог работать другой человек, пока без объединения с мастером: git merge --abort -отменяет слияние git push origin Penguin - отправляет ветку на сервер. На гитхабе убеждаемся что у нас теперь там две ветки которые мы можем переключать. В гитбаше, с другого компа(там где нет пингвина) переходим на мастер и делаем git pull - загружает с сервера все что есть, в том числе и все ветки (в отличии от git push который
загружает только указанную ветку), но другие ветки вроде(кроме мастера) не обновляет. Теперь на другом компе у нас есть ветка пингвин, разработанная вообще другим пользователем. Переходим на неё, проверяем на соответствие с мастером(получаем данные из мастера merge),
устраняем конфликты, и пушим. На клоне(где создавался пингвин) переходим на ветку мастер(git pull можно только на неё делать, чтоб не изменять и не конфликтовать с другими ветками(собственно для этого они и
создавались) и вроде бы как даже мы не сможем в них запулиться) и загружаем, репозиторий с сервера, уже с исправленными данными. В клоне, ветка пингвин имеет устаревшие данные (наш
мастер уже имеет пингвина, и помимо этого еще и льва и жирафа) поэтому её можно удалить, ну а можно Обновить слив с мастер(git merge master)
Научился: git push из подветки вернёт ошибку о том, что текущая ветка (current branch) не является веткой для загрузки (upstream branch).
git push --set-upstream origin pingwin решает эту проблему и позволяет пуш для текущей подветки с установкой этой подветки "веткой для загрузки (upstream branch)".
Если в удалённом репозитории на ГитХабе есть изменения в коде, которых нет в локальном репозитории, то при попытке git push будет возвращена ошибка об этом с предложением сначала сделать pull и сначала забрать себе те новые строки кода для синхронизации работы с удалёнными коллегами, а затем уже пушить свои вирши на ГитХаб.
git merge --abort - отменяет начатое неудачно слияние.
git branch -a -покажет все ветки.
Выход из неудачного слияния - правка конфликтного файла, адэдэ, гиткоммит минус мЭ с адекватным комментарием о коммите.
Научился: В папке zoo-clone выполнил команду git push origin pingwin, тем самым отправив на сервер ветку pingwin. В папке zoo-git получил эту ветку командой git pull и перешел на ветку pingwin. Выполнил слияние в веткой master. Сделал коммит слияния и отправил изменения на сервер. В папке zoo-clone получил изменения и проверил работу программы.