Есть три ветки: main, test, task-101.
Main - основная, рабочая; test - куда выгружаются все задачи для теста; task-101: ветка с задачей (ответвлена от main-a). После успешного теста в ветке test - task-101 нужно вмерджить в main.
При мр-e task-101 в test есть конфликты. При решении конфликтов на сайте гитлаба при помощи кнопки resolve conflicts автоматом происходит мердж test-a в task-101, а этого быть не должно. Нужно наоборот мердж task-101 в test.
Логично, что в test нужно пулиться с origin test и делаем merge task-101 into test и пушим test в origin test. Но ветки main и test - protected.
Есть ли другой способ решить конфликты?
Вы неправильно понимаете суть веток. Это не «коробочки» с задачами, а указатели на дерево состояний проекта.
Перед запуском тестов вы должны подгрузить из main все обновленияк к себе: git merge main
Так вы заранее решите конфликты и их не будет когда уже вашу ветку будете вливать в main. И тесты будут прогоняться на актуальной кодовой базе, а не на устаревшей.