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