Rebase vs. merge
This is a stub article…
In general when you have local commits that have not been shared, you should rebase them on top of incoming changes from origin/upsteam. This includes if you’re merging a local branch that has not been shared with others. In general we should not see many messages that say “merging devel into devel” Most times short-lived local topic branches can be fast-forward merged with devel and should not require a merge commit.
Otherwise if you’re merging between branches that have been shared, e.g., merging devel to a shared topic branch like mlmfOpt or expDesignBayes, (or vice-versa), you will use git merge and create a merge commit.