An overview on merge and rebase as well as some of the different git workflows a team can adopt based on them. Also goes through some common anti-patterns and how to avoid them.
it allows you to alter commits rather than only moving them. It’s based on git commit --amend Interactive mode further allows you to also squash the commits, for a cleaner history. 7
into one unified history. [...] git merge takes two commit pointers, usually the branch tips, and will find a common base commit between them. Once Git finds a common base commit it will create a new "merge commit" that combines the changes of each queued merge commit sequence. If a piece of data that is changed in both histories git will be unable to automatically combine them. Fast-forward vs 3-way merge 14
developed by branching develop and are reviewed before merging. Releases are merges from develop to master . When? The opposite scenarios to Trunk-based development. In other words, any scenario where branch micromanagement could be an asset rather than a burden. 18
are designed to integrate changes from one branch into another branch—they just do it in very different ways. The golden rule of git rebase is to never use it on public branches. Nonetheless, the team decides. 20
you jump to any commit? Long living branches Complicated commit log Using GUIs Commit early, commit often, perfect later, publish once. credits: @lemiorhan 22