https://www.youtube.com/watch?v=T13gDBXarj0

Rebase changes the base of the feature branch to the latest commit on main makes for a clean main branch history, but doesnt keep the history of the feature branch? Merge pulls in the latest commits from the main branch and creates a new commit, basically ties the two different branches with a knot preserves all the commit histories and commit graphs Merge —squash squashes all the commits form the feature branch to one commit on the main branch, loses the small detailed commit information of all the small commits on the feature branch Pull basically git fetch + git merge git pull --rebase git pull --ff (fast forward) standard merge git pull --ff-only only does merge if there is a fast forward possibility (no new commits to the main branch that could cause conflicts) Fetch Pull Request