Stop doing git checkout master branch
Dragoș Străinu
Posted on March 14, 2023
I see a common workflow when starting to work on new task:
git checkout master
git pull # or git pull -r
git checkout -b feat/4605-new-task
But I do things a bit differently. The main difference is that I don't care about the local master
branch because the source of truth is always remote origin/master
.
I don't do commits on master
branch, because all changes to the project are done through Pull Requests. So why should I keep the local master
in sync with origin/master
?
The first thing I do is fetch the remote master branch to get the latest commits.
I have an alias in my .gitconfig
file:
[alias]
fetch-and-clean-branches = "!git fetch -p && git branch -vv | grep ': gone]'| grep -v "\\*" | awk '{ print $1; }' | xargs git branch -D"
Running git fetch-and-clean-branches
, will fetch new updates on remote branches and will remove local branches that are not relevant anymore.
Next, I create a new branch based on origin/master
:
git checkout -b feat/4605-new-task origin/master # --no-track
I also created an alias for this command:
[alias]
fetch-and-clean-branches = "!git fetch -p && git branch -vv | grep ': gone]'| grep -v "\\*" | awk '{ print $1; }' | xargs git branch -D"
start = "!git fetch-and-clean-branches && git checkout -b \"$1\" --no-track origin/master #"
And I can use it as: git start feat/4605-new-task
.
Related: How I use Git
Posted on March 14, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024
November 29, 2024