Hacker News new | comments | show | ask | jobs | submit login

If you name it "git-jk" rather than "gitjk", you can invoke it as

  git jk



The gitjk command needs to operate as a shell alias though


Is that specific to git or is it in the shell?


All of the:

  git <command>
commands are executables of the form 'git-<command>' in specific directory:

  $ git --exec-path
  /usr/local/Cellar/git/1.9.0/libexec/git-core 

  $ ls $(git --exec-path) | head
  git
  git-add
  git-add--interactive
  git-am
  git-annotate
  git-apply
  git-archimport
  git-archive
  git-bisect
  git-bisect--helper
In git's earlier years, it was just a set of git-<command> commands in $PATH, until the master git command was created (to 'rule them all' if you will).

git will actually pick up anything in $PATH of the form 'git-<command>' and allow you to run it as 'git <command>'. The downside of this, is that commands of the form:

  git <command> --help
are intercepted by git and converted to:

  man git-<command>
So your command cannot process the --help option itself when called like this (or it used to be this way a couple of years ago).

Edit: Another downside, is that some 'smart' command-line completion settings either have a hard-coded list of 'git <command>' commands, or look for said commands in the value returned by 'git --exec-path'. So you can't tab-complete git-<command> commands that you just drop into $PATH (at least not out of the box).


It is specific to git.


Git.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: