Git: checkout -b branchName /branchName (и правильно ли разрешаю конфликты ?)
Всем привет, на гитхабе создали pull request (merge с мастером), который вызвал десяток конфликтов. Я в первый раз столкнулся с этим на практике, а опыта работы с этим нет.
Хотел бы понять, правильно ли я работаю с гитом для разрешения конфликтов, и также В процессе разрешения конфликтов, возникло несколько вопросов.
Рабочий процесс:
Изначально нахожусь в ветке master.
# забираю из репозитория последние изменения
git pull origin master
# создаю тестовую ветку, в которой буду разрешать конфликт при merge
git checkout -b feature/temp-branch
# получаю все ветки из репозитория
git fetch origin
# далее, создаю ветку, в которой будет копия состояния удаленной ветки
# (которую нужно сливать с мастером)
git checkout -b feature/conflict-features origin/conflict-features
после создания ветки feature/conflict-features - git выводит сообщение:
Branch 'feature/conflict-features' set up to track remote branch 'conflict-features' from 'origin'.
Не понимаю, что происходит.. какая-то связь установлена, что это значит ? Такое происходит если создавать ветку от remote-ветки ?
Дальше, переключаюсь обратно на ветку feature/temp-branch, и пишу команду для мерджа:
git checkout -
git merge feature/conflict-features
дальше, гит выдает конфликтные файлы, которые нужно разрешить.
Например я исправил пару конфликтов, очистил конфоль, и хочу понять, какие еще конфликты нужно разрешить - как мне это сделать ?
Подскажите пожалуйста, что делаю правильно, а что не правильно и почему ?
Ответы (1 шт):
Я ни разу не видел подобного подхода. Думаю, что Ваша проблема в том, что Вы делаете команду:
git checkout -b feature/conflict-features origin/conflict-features
Зачем Вам ещё одна ветка?
Начало:
Затем решаете конфликт в этой ветке и туда подмёрдживаете мастер:
Конфликты решены. Теперь обновляете пул-реквест в мастер:
Владелец репы принимает пул-реквест
---- update ----
Переключаемся на ветку с фичой Вашей:
git checkout feature
Делаем:
git merge master
Решаем конфликты:
git add .
git commit
Пушим ваши изменения в Вашу удалённую ветку:
git push origin feature
Посмотрите также, в сторону rebase. У него, по сравнению с merge, есть свои плюсы и минусы. Я обыно пользуюсь им.


