• hallettj@leminal.space
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    When I’m in some subdirectory of a git repository, I use this command to jump to the repo root:

    alias gtop="cd \$(git rev-parse --show-toplevel)"
    
    • Victor@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      1 month ago

      What I do with all git related aliases is I alias git to just g in the shell. Then for any alias I want that uses git I just put that alias in the global git config under the alias section.

      This avoids polluting the shell with a bunch of git-specific aliases. Just the one, g.

      • hallettj@leminal.space
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        I certainly see the value in this strategy! But I’m not going to give up my top-level aliases. I enjoy saving two keystrokes too much!

        Here are my most used aliases (these ones use Nushell syntax):

        alias st = git status
        alias sw = git switch
        alias ci = git commit
        alias lg = git log --color --graph '--pretty=format:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
        alias push = git push
        

        I was also delighted to learn that I could get the same short aliases for corresponding fugitive commands in vim/neovim using the vim-alias plugin:

        -- This is a lazy.nvim plugin module
        return {
          'Konfekt/vim-alias',
          config = function()
            -- Shortcuts for git operations to match some of the shell aliases I have.
            -- For example, `:sw ` expands to `:Git switch `
            vim.cmd [[Alias sw Git\ switch]]
            vim.cmd [[Alias ci Git\ commit]]
            vim.cmd [[Alias pull Git\ pull]]
            vim.cmd [[Alias push Git\ push]]
            vim.cmd [[Alias show Git\ show]]
            vim.cmd [[Alias re Git\ restore]]
            vim.cmd [[Alias lg GV]]
          end,
        }
        

        Fugitive is very nice for integrating git workflows in the editor, and its commands have very nice tab completion for branches and such.

        • Victor@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          two keystrokes

          For me I’d be saving one keystroke. Status for me would be g s, g c for commit, and so on. Single letter aliases for the most common commands, two letters for less common in a conflict. 😁

          But these days since a few years back I just use lazygit (aliased to lg btw, lol).

          Everything in lazygit is basically just single keystrokes also. c for commit, etc. Very handy.

          Fugitive

          Cool beans, sounds like a good tool! I’m on team Helix since a few years, after being a vim/nvim user for about a decade, and emacs a couple years before that. Helix’s paradigm just makes so much sense. 🎯👌 Jumping around symbols intra-file and inter-file, and LSP support built-in, no fussing. Worth a try for a few weeks if you ask me.