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 шт):

Автор решения: hedgehogues

Я ни разу не видел подобного подхода. Думаю, что Ваша проблема в том, что Вы делаете команду:

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, есть свои плюсы и минусы. Я обыно пользуюсь им.

→ Ссылка