Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can become that expert too by reading this tutorial. https://www.sbf5.com/~cduan/technical/git/ It doesn't teach you commands at first because:

> you can only really use Git if you understand how Git works. Merely memorizing which commands you should run at what times will work in the short run, but it’s only a matter of time before you get stuck or, worse, break something.



you shouldn't _need_ to understand how git internally works to use it (and if you did, then it confirms that git isn't good). You should understand the abstract model of DVCS that git presents (just like you'd need to understand the abstract model of a car to drive it).


Understanding the abstract model is exactly what people mean when they say this. It just happens that Git's implementation is incredibly close to the abstract model. This was particularly true in the beginning, before regiments such as pack files were introduced. Those regiments complicate the implementation somewhat, but haven't changed the abstract model at all.


> Git's implementation is incredibly close to the abstract model

which is exactly why a lot of people claim that git is shit. The fact that it "won" makes those people more angry.


Oh well.

OTOH, I'm a kind of guy who just must take everything apart before using it and I like the brutal simplicity of git ;)

The naming of commands could be better, though.


I've never seen anyone complain about Git on the grounds that it _isn't_ full of leaky abstractions.


err, s/regiments/refinements/g. Thank you, autocomplete.


> git isn't good

who cares? git won, you need to use it if you are in this field. Yes, I liked bzr much better, I even liked darcs better but what can you do? git won, good or not. That git sucks is indisputable nonetheless we need to learn it and this tutorial is what made it possible for me to have some peace with git.

Oh and neutering git reset --hard because it's incredibly dumb for a version control system to just throw away shit. Instead, a backup commit is made first (and some other minor goodies): https://gist.github.com/chx/3a694c2a077451e3d446f85546bb9278


> git won,

I really wish people would stop talking about computer tech as "winning" and "losing". I mean, it's slightly better than "X is the new Y Killer from X Corp" bullshit we used to get, but its still ridiculous.

Mercurial, SVN, Darcs etc are all valid tools to use and all are maintained.

> you need to use it if you are in this field.

Wow, cargo culting much?

You should be familiar enough to use it when required, sure.

You don't need to use it if you're starting a new project. My client projects default to Mercurial, and I'll give them help getting up and running with hg if they aren't familiar already.

If you have developers who want to collaborate on your work, who are able to get git to do what they want, but who objecting to using something like Mercurial, you need to question their motives.

They're either not smart enough to actually use git, and instead just memorise commands without any clue what they're doing, OR they are objecting because we all know cool kids use git and they are a cool kid.


1. Git's not "winning" at Facebook: https://code.facebook.com/posts/218678814984400/scaling-merc...

2. Mozilla has also standardized on Mercurial

3. Mercurial’s changeset evolution is awesome: https://www.mercurial-scm.org/doc/evolution/


The implication of which is that git is a leaky abstraction?





Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: