The following Git aliases are very helpful for my usual workflow.
[alias]
cb = switch -c
sw = switch
wip = commit -m wip
rr = pull --rebase origin
fixup = !git reset --soft HEAD~1 && git commit --amend --no-edit
publish = !git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD)
nudge = push --force-with-lease
shove = push -f
lrb = !sh -c '\nten_days_ago=$(date -v-10d +%Y-%m-%d) &&\ngit for-each-ref --sort=committerdate --format \"%(committerdate:short) %(refname:short)\" refs/heads/ |\nawk -v date=\"$ten_days_ago\" \"\\$1 >= date { print }\"\n'
git cb new-branch
git sw other-branch
Commits current changes with "wip" as the commit message. It is helpful to create several commits as checkpoints during development on a feature branch.
git wip
Pulls from origin and rebases current branch. This is helful to stay current on a feature branch during development.
git rr main
Combines latest commit with the previous commit and uses the commit message of the previous commit. This is great for combining a WIP commits before pushing to a remote branch.
git fixup
git publish
git nudge
git shove
List the 10 most recent and shows date. This is useful for changing between the main branch and feature branches.
git lrb