git checkout master
git pull --no-edit origin $(git rev-parse --abbrev-ref HEAD) --rebase --ff-only
git checkout -b new-feature
git commit ...
...
git push -u origin $(git rev-parse --abbrev-ref HEAD)
открываешь MR
проходишь код-ревью
если есть замечания по код-ревью, фиксаешь их и пушишь в свой же бранч с форсом
git push -u origin $(git rev-parse --abbrev-ref HEAD) --force
чтобы не было множества коммитов в MR*
*есть ли смысл в отдельных коммитах определяешь, полагаясь на здравый смысл:
есть ли вероятность того, что придется реверить отдельный коммит?
P.S. я себе добавил алиасов, что проще набирать
$ grep HEAD ~/.bash_profile
alias push='git push -u origin $(git rev-parse --abbrev-ref HEAD) $@'
alias rebase='git pull --no-edit origin $(git rev-parse --abbrev-ref HEAD) --rebase --ff-only'