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)"What I do with all git related aliases is I alias git to just
gin 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.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 pushI 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.
two keystrokes
For me I’d be saving one keystroke. Status for me would be
g s,g cfor 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
lgbtw, lol).Everything in lazygit is basically just single keystrokes also.
cfor 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.


