My favorite is git h, which produces a nicely summarized log of commits on the current branch, with some highlighting and relative dates:

[alias]
    h = log --graph  --abbrev-commit --date=relative --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'

What’s your favorite Git alias?

  • canpolatM
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 year ago

    Found one on “another site”:

    I occasionally fat finger the git add command:

    $ git dad .
    git: 'dad' is not a git command. See 'git --help'.
    
    Did you mean this?
      add
    

    So today I fixed it:

    $ git config --global alias.dad '!curl https://icanhazdadjoke.com/ && git add'
    

    And now my clumsy typing is rewarded with comedic gold:

    $ git dad .
    I used to hate facial hair, but then it grew on me.
    

    Since git’s aliasing system passes any parameters on to the underlying command, your git add operation completes normally and you get a bonus dad joke.

  • JackbyDev
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    2 years ago

    git config --global alias.git '!git' Now if you do git git status by mistake you won’t get an error lol. I believe this is the most universally useful and unopinionated alias.

    The ! makes it treat it as a shell command instead of a git command. Then because it is git it just basically runs the remainder as a git command lol.

    • Jason NovingerOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      Love it. I might also do igt (as in id-jit), which is what I call myself when I typo that.

      • canpolatM
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 years ago

        And gti. Apparently one cannot push a Golf GTI from command line.

  • canpolatM
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 years ago

    The aliases I use the most are these:

    st = status
    co = checkout
    lg = log --color --graph --date=short --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit
    

    I see that my lg is almost identical to your h. I didn’t write mine either.

    I have some other aliases (mostly for log) but I rarely use them.

    • Jason NovingerOPM
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years ago

      At this point, I don’t even remember what the h stood for, my brain just knows which fingers to move to do the thing to see the history. 🤦

      • canpolatM
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 years ago

        “history” maybe? Same here, it’s mostly muscle memory. When I temporarily have to work on a different PC without my aliases, I feel like everything is in slow motion :)

  • Jason NovingerOPM
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 years ago

    Looking for a repo somewhere with a messy history to demo my git h alias and what it can show. Not having much luck.

    Also, I should point out I’m not the originator of this one. I borrowed it from a former coworker years and years and years ago.