[{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 || Description || Zsh || Git | Checkout branch | {{{gco $branch_name}}} | {{{git checkout $branch_name}}} | How many commits to squash | {{{g rcm}}} | {{{git rev-list --count master..}}} | Rebase your branch from HEAD[2] | {{{grbi HEAD~$Y}}} | {{{git rebase -i HEAD~$Y}}} | Force push your branch | {{{ggfl}}} | {{{git push --force-with-lease origin $current_branch}}} [#1] custom alias [#2] {{$Y}} is displayed in GitLab at the top, where it says ''Overview: X, Commits: Y, Pipelines: Z, ...'' . The number you want is Y. !!! Update From Master Time passes, commits get merged to master. You need to update your branch. || Description || Zsh || Git | Checkout master | {{{gcm}}} | {{{git checkout master}}} | Pull | {{{gl}}} | {{{git pull}}} | Checkout branch | {{{gco $branch_name}}} | {{{git checkout $branch_name}}} | Rebase from master | {{{grbm}}} | {{{git rebase master}}} | Handle conflicts, test, etc. | Force push {{{$current_branch}}} to remote | {{{ggfl}}} | {{{git push --force-with-lease origin $current_branch}}} !!! Push to Master Checkout master, merge feature branch into master, push master || Description || Zsh || Git | Checkout master | {{{gcm}}} | {{{git checkout master}}} | Merge feature branch into master | {{{gm $feature_branch}}} | {{{git merge $feature_branch}}} | Push master| {{{ggp}}} | {{{git push origin master}}} ---- [CategoryComputing.SCM.Git]