1. Чтобы не видеть сообщений типа
Merge branch 'somebranch' of https://gitlab.com/blablabla into somebranch
используй rebase вместо merge.
2. Как советовали выше, чтобы привести локальную ветку в соответствие с удаленной, используется reset --hard, но делать это надо понимая, что произойдет и как.
3. Советую изучить что делает squash, пригодится.