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

Github probably considers the "depth" of git use by the average user to be one of its KPIs. Git is extremely powerful, if you are only doing checkouts and commits you are under-utilizing the tool and also underutilizing the service.

So it's smart for Github to build tools that lower the bar for a) understanding git, and b) using git's more powerful features.

Useful metrics would be things like the percentage of users who use the pull request flow, use it with at least one comment per pull request, have pull requests that get revised, etc. etc.

I'd guess that part of the growth potential driving Github's valuation is the notion that git's power features add significant productivity/value and that github is uniquely positioned to let a significantly large number of developers and teams make optimal use of those features for development and collaboration.

>a) understanding git, and b) using git's more powerful features.

But then you start talking about pull requests, which are not a feature of git. They are specific to github (e.g. try finding a PR comment in the git repo).

Does the new tool help with advanced git stuff, or does it just serve the github workflow?

The pull request is just an alternative version of the patches linus used to receive via email. Git is equally well suited to both.

At this point I don't think the tool does all that much advanced stuff, but the focus appears to be on understanding git at a level required to understand the more advanced features... so actually more focused on the semantics of git than on specific workflows.

> But then you start talking about pull requests, which are not a feature of git.

Actually, they are[1], though github pull requests appear to be designed in a way that is not interoperable with the native feature.

[1] = http://stackoverflow.com/questions/9630774/how-to-make-pull-...

The pull requests of github are not compatible with other things, which is why I brought it up.

I'm a beginner here so sorry for if it's a stupid question. I work with GitFlow and the only things I use are commits and checkouts, but for what do you use Git?

About which powerful features are you talking about, does anyone have a link with some more in depth informations?

Some features I use: Cherry-picking commits across branches. Merging branches. Rebases for forward-porting your work onto a new upstream. Bisects for determining which commit introduced a bug. Push/pull for sharing. Format-patch for sending patches around. Submodules.

Two of these I haven't done: Cherry-picking (well I did once, it went so wrong I had to reset the repository), and Bisects. That sounds very useful.

If you want to get a deeper understanding of what git's doing, read gitcore-tutorial(7). It's pretty easy to understand git's internals, and once you know them, it's easier to understand what the user commands are actually doing. Then, if something goes wrong, it's much easier to recover.

I am a guy who usually puts too much info into commit messages instead of code comments. Git blame recently helped me to find out why I had added a particular line to a lengthy if condition.

Svn blame would have done the same... Where's the git-specific use?

As with many svn features, blame requires access to the server and is also quite slow. In git, this sort of thing is instantaneous and therefore viable to do all the time if you like.

Lol! Never knew svn blame existed :-). I suppose tracking a change over multiple merges may not be easy?

I think we use a lot of PR flow in our team. It's really powerful if you collaborate or plan to collaborate with others as it allows you to get together and look at the commits to ensure code quality (in theory).

Even the command line git itself is really nice because it gives you the current condition of your repo and suggestion on what you can do next. You have changes, if you want to commit use this command or if you want to add use this command.

there are many 'minor' features that are occasionally useful. For example, when you make a stupid mistake, reflog can make you gain a couple of minutes.

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