DEV Community

Rudi Farkas
Rudi Farkas

Posted on

git aliases

Hey, devs!

Here are a few of my git aliases -- I like using git from the command line.

Feel free to try them and let me know if you're interested in learning more about how and why I use them.

Even better, present us some of your own -- I'd love to see them!

### git trb <commit> ### tag and rebase on commit
trb = "!f() { bra=$(git rev-parse --abbrev-ref HEAD);  git tag ${bra}-BAK;      git rebase ${1}; }; f"

### git trbi <commit> ### tag and rebase interactively on commit
trbi = "!f() { bra=$(git rev-parse --abbrev-ref HEAD); git tag -f ${bra}_BAK;   git rebase -i ${1}; }; f"

### git tsqn <n> ### tag and squash last n commits
tsqn = "!f(){ bra=$(git rev-parse --abbrev-ref HEAD);  git tag -f ${bra}_BAK;   git reset --soft HEAD~${1} && git commit --edit -m\"$(git log --format=%s --reverse HEAD..HEAD@{1})\"; }; f"

### git tsqc <commit> ### tag and squash on top of the commit
tsqc = "!f(){ bra=$(git rev-parse --abbrev-ref HEAD);  git tag -f ${bra}_BAK;   git reset --soft ${1} && git commit --edit -m\"$(git log --format=%s --reverse HEAD..HEAD@{1})\"; }; f"

Enter fullscreen mode Exit fullscreen mode

@rudifa

Top comments (1)

Collapse
 
rudifa profile image
Rudi Farkas

Here is an example of my workflow

  • work for a couple of hours on a feature, commit often (some good, some to be fixed)

Image description

  • when the feature is done, squash all intermediate commits into a single final commit:
ad-astro-d3-demos % git tsqc main 
Enter fullscreen mode Exit fullscreen mode
  • later, when all is stable, remove the _BAK tag