Hub: Wraps Git with extra features that make working with GitHub easier
github.com
github.com
It's often helpful to know what's actually happening... then add something like hub later as an optimization.
hub clone rtomayko/tilt
Am I missing something? hub pull-request
hub fork # adds remote automatically
hub create # create GH repo for this local repo
And ability to use GH paths anywhere git takes a URL - clone (as you mentioned), remote add, submodules, etc. [alias]
hub = !hubFor example, the "release" command (which is great for using from a Makefile to do an automated release) has lots of functionality on master, but the current release only supports making new releases.
I may fork hub tonight and let Travis build a newer version.
Linus, please make it happen :)
I agree it would require additions to git & some kinda of standard around it but it's telling that every major git system in use "solves" this problem.
We need a system to do this in a standardized that works across service providers. I don't want to create a dummy github account only to submit a PR.
It's possible to use https://git-scm.com/docs/git-request-pull and an out of band communication tool (Email, Slack) to achieve the same basic functionality. Take a look at https://git-scm.com/book/en/v2/Distributed-Git-Contributing-... for more info about the baked-in review and contributing tools.
Our companies fork of gitflow uses hub for example.
But definitely, my biggest use is for quickly creating new private repos in Github to save small experiments (doesn't require hub to be aliased to git):
new => !git init && git commit --allow-empty -m 'Initial commit (empty)' && hub create -p `basename $PWD`
For new projects (hope you can get the aliases): mkdir newproject && cd newproject
g new
# Do stuff, etc...
gcia -m "Add project start" && gpgpr <PR#>
You can also easily checkout a branch from another users fork.
https://github.com/github/hub/blob/master/commands/alias.go#...
Oh wait, thats right, cause guys who make operating systems dont make human software.
Like it would make sense to me if everyone who used git also used VIM, but they dont. Its a testiment to the power of the flock, that a product which gets its core functionaly so wrong, be used by so many ppl.
as for the topic at hand, if my company had invested so heavily into such a product, i would be doing everything in power to make it work. let alone if my companies core business was all in on it like github, it would be a no brainer and i cant beelive its taken so long to get the top of the backlog. looking forward to the nxt installment of hub which introduces propriority commands and see if they get treated like MS does :)
If a problem in Git was causing a problem for GitHub I'm sure they'd work to fix it. Although I don't see any @github addresses in git's git.
But hey if you're a happy TFS customer then good for you...
I keep arguing that the unix model of using the same api for human consumption as for scripting is broken. One needs to be concise and doesn't need to be backwards compatible (interactive use), the other needs to be descriptive and backwards compatible (sctipting use). Git wasn't designed in the 70's so could easily have avoided this.
Compared to what? It's leagues better than what it replaced (SVN & CVS) and it's pretty comparable to Hg tbh.
So what's your preference here?
Compared to how it would work today if it wasn't constrained by backwards compatibility, and it was designed for ergonomics rather than power. Every time a best practice changes, or a new default is considered best practice, or you notice a typical usage pattern means a particular command is much more common - then the interface should reflect it. There have been multiple wrappers such as this one - but there could be room for a big official cli tool that is not backwards compatible (want to script? - call git directly).
> It's leagues better than what it replaced (SVN & CVS) a
Git as a tool is better than svn and cvs - but I don't agree its interface is. This is of course an unfair comparison since svn, cvs etc is so much simpler (It's after all a LOT easier to make a good UI for a ToDo app than for facebook). The best comparison for an UI of a "modern" vcs is git vs mercurial.
What specifically are you complaining about here?
One of the best (and funniest) criticisms of the git command line is the famous git koans. http://stevelosh.com/blog/2013/04/git-koans/
git branch -d
git remote rm
Is a prime example of how, if you designed it from scratch, you wouldn't leave inconsistent. "List things", "delete things" etc are activities that should work the same for all kinds of objects. the Git cli isn't designed with that thought. It's organically grown and every change is more or less irreversible because the human interface UI is used in programming (What I like to think of as the biggest flaw of Unix)