If you want to update directly a shared branch like develop or master, you can avoid generating extra merge clutter in the history (if someone else has in the meantime updated develop on gitlab) by using pull with rebase. This replays your local commits on top of the remote ones, resulting in a linear commit history.