1. Get all latest changes without merging
Stop pulling code that you think will break! Having fetch
in your workflow allows you to grab updated code without immediately merging it. Once the code is fetched, you can check it out like any other branch. When you're satisfied, then you can merge.
git fetch --all
# git checkout upstream/some-branch
2. Push upstream regardless of current branch name
Stop typing the branch names especially when they are long branch names. Just tell git you want to push the current branch to a remote location. HEAD
is a key word that tells git to use the current branch.
git push production head
# git push origin head
# git push github head
3. Label your stash
This is useful if you stash a lot of code and you want to remember what the stash contains at a glance.
git stash save -m "my work in progress"
4. Use a stash from ages ago
Stop undoing stashes with git pop
to get to an old stash. You can apply a stash that you created ages ago by using the following command.
# git stash list
git stash apply 3
5. Checkout the previous branch
This is super helpful when you are working on small features and you want to compare behavior/performance by toggling branches. You don't have to type the names, just use the minus sign.
git checkout -
I like this command so much that I made a quick YouTube shorts video showing it off!
6. Change the base of the branch after doing a checkout
This is useful if you created a new branch but you based it off the wrong branch. For example, say you wanted to branch from the beta code, but you accidentally branched using the production code.
git rebase --onto beta production feature
# git rebase newBase oldBase currentBranch
7. Move uncommitted changes to new/existing branch
git switch -c new-branch
# git switch existing-branch
Bonus - Fuzzy Checkout
This custom command allows you to quickly switch to another branch without typing the entire name. This is super useful when you are using a naming convention and you are tired of typing a prefix like feature/
or issue/
function fc() {
gco "$(git branch --format='%(refname:short)' | grep $1)"
}
If your branch name was called feature/dropdown-select-color
you could quickly switch branches by doing something like this.
fc dropdown