
Научился: Создали отдельную ветку, в ней пингвина. таким образом спокойно можем обновить ветку мастер с сервера. После это пытаемся слить пингвина и обновленную с сервера мастер, что само собой
не получается. (Файл Zoo мастера имеет создание жирафа и льва, а в ветке пингвина, заместо этого, идет создание пингвина). Можно исправить конфликт - сказать что нам нужно и то и то, но
мы решили откатить слияние, и добавить ветку пингвина на сервер, отдельно, чтобы с ней мог работать другой человек, пока без объединения с мастером:
git merge --abort -отменяет слияние
git push origin Penguin - отправляет ветку на сервер.
На гитхабе убеждаемся что у нас теперь там две ветки которые мы можем переключать.
В гитбаше, с другого компа(там где нет пингвина) переходим на мастер и делаем git pull - загружает с сервера все что есть, в том числе и все ветки (в отличии от git push который
загружает только указанную ветку), но другие ветки вроде(кроме мастера) не обновляет.
Теперь на другом компе у нас есть ветка пингвин, разработанная вообще другим пользователем. Переходим на неё, проверяем на соответствие с мастером(получаем данные из мастера merge),
устраняем конфликты, и пушим.
На клоне(где создавался пингвин) переходим на ветку мастер(git pull можно только на неё делать, чтоб не изменять и не конфликтовать с другими ветками(собственно для этого они и
создавались) и вроде бы как даже мы не сможем в них запулиться) и загружаем, репозиторий с сервера, уже с исправленными данными. В клоне, ветка пингвин имеет устаревшие данные (наш
мастер уже имеет пингвина, и помимо этого еще и льва и жирафа) поэтому её можно удалить, ну а можно Обновить слив с мастер(git merge master)
Научился: Делаю свои ошибки, экспериментирую. Понял, что пока не сделаю комит ветки, git status будет показывать все изменения любых веток, как будто я в этой ветке их делал.
Трудности: почему то git checkout не удалял файл Penguin.java. git checkout -- Penguin.java тоже. Пришлось удалить файл командой git clean -f -d - Удалить все локальные файлы и директории, которые не отслеживает Git, из вашей текущей копии.