[{TableOfContents}] This is for keeping your branch up to date and always having a PR / MR with only one commit. It is helpful if you use Oh-My-Zsh. !!! Squashing Your Branch !! Checkout your branch {{{ omz> gco $branch_name zsh> git checkout $branch_name }}} !! Rebase your branch from HEAD {{$number_of_commits}} is displayed in GitLab at the top, where it says Overview: X, Commits: Y, Pipelines: Z, ... The number you want is Y. {{{ omz> grbi HEAD~5 zsh> git rebase -i HEAD~$number_of_commits }}} !! Force push your branch {{{ omz> ggfl zsh> git push --force-with-lease origin $current_branch }}} !!! Update From Master Time passes, commits get merged to master. You need to update your branch. !! Checkout master {{{ omz> gcm zsh> git checkout master }}} !! Pull {{{ omz> gl zsh> git pull }}} !! Checkout branch {{{ omz> gco $branch_name zsh> git checkout $branch_name }}} !! Rebase from master {{{ omz> grbm zsh> git rebase master }}} Handle conflicts, test, etc. !! Force push Force push {{$current_branch}} to remote. {{{ omz> ggfl zsh> git push --force-with-lease origin $current_branch }}} !!! Push to Master Checkout master, merge feature branch into master, push master !! Checkout master {{{ omz> gcm zsh> git checkout master }}} !! Merge feature branch into master {{{ omz> gm $feature_branch zsh> git merge $feature_branch }}} !! Push master {{{ omz> ggp zsh> git push origin master }}} ---- [CategoryComputing.SCM.Git]