Live data from Hacker News

Git Is Simpler Than You Think

nfarina.com

1–10 of 122 posts

Re: Git Is Simpler Than You Think

#2
No, actually, it's not. And that post proves it.

You can do some things to make it easier on yourself (and others) but it's not simple. You find out how un-simple it is when you hit one of those magical corner cases.

Don't get me wrong, I love Git. I far prefer it over SVN and CVS. But it's not simple.

Re: Git Is Simpler Than You Think

#3
Thanks -- great article. This is the most readable and straight-forward explanation of git's internals that I've seen (and I've read a bunch of articles/books/etc. looking for resources to help others learn git).

I'd also recommend The Git Parable (http://tom.preston-werner.com/2009/05/19/the-git-parable.htm...) for anyone who hasn't read it. Different focus, but also helpful for understanding git's philosophy.

Re: Git Is Simpler Than You Think

#5

No, actually, it's not. And that post proves it. You can do some things to make it easier on yourself (and others) but it's not simple. You find out how un-simple it is when you hit one of those magical corner cases. Don't get me wrong, I love Git. I far prefer it over SVN and CVS. But it's not simple.

Yes I'm with you with this wccrawford. Git is not simple. Git internals may be simple hacks for hackers but git usage is another story. It does have neither understandable nor compatible terminology.

Because it's simple bash scripts but distributed and decentralised it has a steep learning curve.

No, no git is not simple. It's really complicated.

Re: Git Is Simpler Than You Think

#6

No, actually, it's not. And that post proves it. You can do some things to make it easier on yourself (and others) but it's not simple. You find out how un-simple it is when you hit one of those magical corner cases. Don't get me wrong, I love Git. I far prefer it over SVN and CVS. But it's not simple.

I think the author's point is that the git internals (i.e. the .git folder) are simple; I don't think the author is disputing that the commands sitting on top of the git internals are sometimes horribly complicated.

The fact that the contents of the .git folder can be explained in ~2000 words (10 min of reading) is impressive--this would be impossible with a more complicated data model.

FWIW, compare:

http://www.google.com/search?q=what%20is%20in%20.svn%20folde...?

with

http://www.google.com/search?q=what%20is%20in%20.git%20folde...?

All the results for the svn search are about getting rid of these folders -- nothing explaining their contents.

Re: Git Is Simpler Than You Think

#7
post #3

Thanks -- great article. This is the most readable and straight-forward explanation of git's internals that I've seen (and I've read a bunch of articles/books/etc. looking for resources to help others learn git). I'd also recommend The Git Parable ( http://tom.preston-werner.com/2009/05/19/the-git-parable.htm... ) for anyone who hasn't read it. Different focus, but also helpful for understanding git's philosophy.

i found the pro git book a very good reading to understand git for the first time http://progit.org/book/

Re: Git Is Simpler Than You Think

#9

No, actually, it's not. And that post proves it. You can do some things to make it easier on yourself (and others) but it's not simple. You find out how un-simple it is when you hit one of those magical corner cases. Don't get me wrong, I love Git. I far prefer it over SVN and CVS. But it's not simple.

Git is conceptually simple, but has a baroque interface. It's nearly impossible to form a proper mental model of what's going on under the hood from its CLI.

The point of this article is that if you take the time to learn how git is actually constructed, the CLI becomes a lot more bearable, and is less likely to leave you in distress when Something Unexpected Happens.

Re: Git Is Simpler Than You Think

#10
post #4

So what was the cause of the original error and how did you fix it?

There was a conflict while rebasing. In this situation you generally do one of:

1. Resolve the conflict and continue rebasing.

2. Drop the conflicting change and continue rebasing.

3. Abort the rebase operation.

Post reply on HN