Можно ли сделать git merge, чтобы в главной ветке появился только коммит слияния?

Да, можно выполнить слияние веток в Git таким образом, чтобы в итоге в главной ветке был только один коммит, представляющий собой результат слияния без истории изменений другой ветки. Для этого можно воспользоваться командой git merge --squash.

Как это работает:

1. Создайте новую ветку на основе ветки, которую вы хотите слить в главную:

   git checkout -b new-branch feature-branch

2. Внесите необходимые изменения в новую ветку и закоммитьте их:

   git add .
   git commit -m "New changes"

3. Вернитесь на главную ветку и выполните слияние с опцией --squash:

   git checkout main
   git merge --squash new-branch

4. Закоммитьте результат слияния:

   git commit -m "Merged new-branch into main"

Теперь в главной ветке main будет только один коммит, соответствующий результатам слияния ветки new-branch, без истории изменений этой ветки.

Этот подход полезен, когда вы хотите сохранить чистоту истории в главной ветке, не включая несущественные детали изменений из других веток. Однако имейте в виду, что при использовании git merge --squash не сохраняется информация о самом слиянии, поэтому если это важно для вашего процесса разработки, стоит подумать о других способах работы с историей коммитов в Git.