В GitLab вы можете создать несколько merge request (MR) для разных коммитов, но это немного усложняется, если у вас уже есть открытый merge request, который включает все эти коммиты. Вот несколько способов, как вы можете достичь желаемого результата:
### 1. Создание новых веток
1. **Создание новых веток для каждого коммита:** Для каждого коммита, который вы хотите вынести в отдельный merge request, создайте новые ветки от той ветки, в которой находятся ваши коммиты (от которой вы создали свой текущий merge request). Например:
```bash
git checkout <branch-with-commits>
git checkout -b new-branch-1 commit-hash-1
git push origin new-branch-1
```
Затем создайте новый merge request для `new-branch-1`. Повторите этот процесс для остальных коммитов.
2. **Второй подход с использованием `cherry-pick`:**
Если ваши коммиты расположены на одной ветке и вы не хотите создавать новую ветку для каждого, вы можете использовать команду `cherry-pick`, чтобы создать новую ветку, включающую только нужный коммит.
```bash
git checkout -b new-branch-1
git cherry-pick commit-hash-1
git push origin new-branch-1
```
После этого создайте новый merge request для `new-branch-1`. Повторите для других коммитов.
### 2. Использование интерактивного rebase
1. Если ваши коммиты идут последовательно, вы можете использовать интерактивный rebase для преобразования ветки и разбиения коммитов на отдельные ветки.
```bash
git checkout <current-branch>
git rebase -i HEAD~3 # Если у вас три последних коммита
```
В открывшемся редакторе замените `pick` на `edit` для каждого коммита. После этого вы можете извлекать коммиты по одному в новые ветки и создавать для них merge request.
### 3. Откат изменения в текущем merge request (если возможно)
Если ваш текущий OMR еще не принят, и вы можете провести откат до определенного состояния ветки, вы можете откатить (например, с помощью `git reset` или `git revert`) неудачные коммиты и сохранить их в другом месте (например, в виде патчей). Затем вы можете сделать новые ветки из состояния, в котором только требуется оставить коммиты для нового запроса.
### Заключение
Метод с созданием новых веток с помощью cherry-pick, скорее всего, будет самым простым и быстрым для решения вашей задачи, поскольку он позволит вам сохранить историю в разных merge request, не теряя при этом текущий запрос.