Originally posted at https://hoelz.ro/blog/adding-remote-shortcuts-to-git
If you're like me, chances are you're a Git user that uses a small set of hosts for repositories very frequently. The example I'll use here is GitHub.
To clone another user's repository, you end up typing out something like this:
$ git clone https://github.com/miyagawa/cpanminus.git
If you want to clone one of your one repositories, you end up with something like this:
$ git clone git@github.com:hoelzro/linotify.git
Now, that isn't that much typing, but there's got to be a shorter way! Wouldn't it be nice if I could just type this?
$ git clone github:miyagawa/cpanminus
Or this?
$ git clone hoelzro:linotify
Well, it turns out that with a few changes to your .gitconfig, you can!
You can add a URL section to your gitconfig, with an insteadOf attribute that describes the prefix you'd like to use. Here's how the previous two examples look in my .gitconfig:
[url "git@github.com:hoelzro/"]
insteadOf = hoelzro:
[url "https://github.com/"]
insteadOf = github:
Rinse and repeat for your various sources!
Top comments (5)
Nice, I didn't know you could do that natively. I've been using hub aliased as
gitand it does this as well as some other cool stuff.Neat! What other kinds of cool stuff does hub do?
It provides a
pull-requestandfork, commands that do what you'd expect them to. It gives youci-statuswhich returns the CI status for a given commit.releaseandissuecommands can be used to access those Github features from within the command line.createsets up your repo on Github,browseopens the Github page for the current repo and there'scomparewhich I haven't used much, really.Overall, it's awesome.
Nice to know you can do this from git! I like manage these names with my
~/.ssh/configfile (which allows me to set the identity file for each remote as well)Yeah, this technique pairs very well with
~/.ssh/config!