Posted Jan 23, 2009 16:18 UTC (Fri) by astrophoenix (guest, #13528)
Parent article: GNOME considers DVCS choices
I've asked this before, and I'm going to ask it again I'm sure.
How in the world does anyone learn to use git?
I know how to use lots of VCS systems inside and out: CVS, svn, arch,
mercurial, darcs, even (shudder) perforce. I consider myself an expert in
all those systems.
I've tried to learn git at least 4 times, and I've failed every time to
get past the commit and push phase.
Frankly, I keep hoping that someday, someone will put a usuable interface
on it.
everyone always seems to rush to start using git, but I just don't
understand how they can get there. why is git so hard to use? why is it
so popular when something like mercurial is available, which is so simple
to learn?
Posted Jan 23, 2009 18:47 UTC (Fri) by obi (guest, #5784)
[Link]
I'm not sure if this is helpful to you, but I can tell you what worked for me.
1) Understand the core concepts of blobs trees and commits (easy)
2) Start small. A small project that you start from scratch, with only one or two people involved. Up until this point it's pretty much like svn (linear).
3) Keep working locally in the beginning.
4) Get familiar with branching and merging, and with what branches, tags, remotes, etc represent. I tried avoiding conflicting merges at first (I used --no-commit a lot so I could see what was happening), and eventually I understood how merges work well.
5) Make mistakes, and understand how to rewrite history - undoing, rebasing, etc.
6) Start working with remotes, submodules, etc etc.
My point is that I started using git on real stuff, even with the little knowledge I had - and improved my understanding bit by bit. I felt it came quite naturally - everytime I felt I needed something, I just looked up if there was a feature for what I needed to do. There usually are; I discovered some really neat features this way (f.e. git stash).
Looking back I don't think learning git was hard: it was pretty logical and consistent, and the learning curve wasn't steep because you could start out with a small subset of the features/commands, and use more and more as you go.
Posted Jan 23, 2009 20:36 UTC (Fri) by dlang (✭ supporter ✭, #313)
[Link]
I think the key is to avoid the temptation to try and sit down and learn all of git at once (especially all the different ways that git can be used)
there are a few core concepts that are really good to understand, but after that you should use it (looking things up or asking as you try to do new things)
the amount of git that you need to know to use it like CVS/svn/perforce etc is very small.
there are several 'how to use git for XXX users' documents out there, and many 'cheat sheets' that give approximatly equivalent commands for the different DVCS systems.
but trying to learn all of git before you start using it is like trying to learn all of perl from the man pages before you write 'hello world'