Можно ли сделать git merge, чтобы в главной ветке появился только коммит слияния?
Когда я создаю ветку(назовем её feature), находясь на основной ветке(скажем dev), а потом делаю git merge на ветке dev, в ветку dev добавляются и все коммиты ветки feature. Я хочу, чтоб после git merge feature у ветки dev создавался только один коммит, который перенимает все изменения, сделанные в ветке feature.
slaver chief, squash делает то что вы хотите, просто нужно дополнительно после этого выполнить git commit (без параметров) и отредактировать сообщение коммита, если необходимо.
При обычном merge как раз и создаётся один коммит слияния. Но, так как у него несколько родителей, то вы будете видеть и все коммиты тематической ветки в вашей основной ветке после слияния.
То, что вы описали, называется squash-коммттом. Это когда все коммиты тематической ветки склеиваются в один, и этот коммит добавляется в конец основной ветки, без сохранения связи с исходной тематической веткой. Это проще всего делать в момент слияния вашего Pull Request на GitHub. Выбирайте там метод слияния Squash and Merge.