Table of Contents
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 |
Squash against master | g rbim[1] | git rebase -i HEAD~$(git rev-list --count master..); |
Squash against another branch | g rbi $branch_name[2] | git rebase -i HEAD~$(git rev-list --count ${1}..); |
Force push your branch | ggfl | git push --force-with-lease origin $current_branch |
[#1] rbim = "!f() { git rebase -i HEAD~$(git rev-list --count master..); }; f"
[#2] rbi = "!f() { git rebase -i HEAD~$(git rev-list --count ${1}..); }; f"
Update From Master#
Time passes, commits get merged to master. You need to update your branch.
Assuming you are currently in $branch_name,
Description | Zsh | Git |
---|---|---|
Checkout master | gcm | git checkout master |
Pull | gl | git pull |
Checkout branch | gco @{-1} [3] | git checkout @{-1} |
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 |
[#3] references the most recent branch, $branch_name
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