Hacker News new | ask | show | jobs
by avg_dev 1020 days ago
i have used cvs, subversion, and git, and to a much lesser extent, darcs and hg. i would have to agree with both the article that this (d)vcs is a breath of fresh air compared to cvs and svn and also with your post and this tweet https://twitter.com/markrussinovich/status/15784512452490526... .

i believe that i notice some nice changes have been coming to git over the years. and i believe i'm largely comfortable with the toolset it offers and occasionally i advance my knowledge of it. i mostly use: git diff, git status, git commit, git rebase, git pull, git log, occasionally git merge or once in a rare while git reflog or whatever else comes up when i try to look up "how do i get back commits from a stash i popped and then checked out" (losing the changes within the stash). i actually did that again the other day and i think i may have tried git reflog and git fsck for the first time on my Windows Subsystem Linux Ubuntu machine (no idea if that is relevant) and i could not find my lost stash at all, and just ended up recreating the changes.

git is nice in the distributed sense, it is fast for my use, git lfs has been quite a pain for me in the past (but maybe it has improved). but i do find the commands quite arcane and it was very hard for me to get used to it. i am all in now and i appreciate the ux changes the project has made (and likely will make) over the years - the git command output often seems to give a short education message about what command to execute in replacement of some arcane thing i've been using for some years and there are often good blog posts describing how to use new commands, but i spent a lot of time figuring out what the hell i was doing that it would be nice if i could have spent another way.

2 comments

I always said git is very nice and understandable after your read thru git book three or four times.

Which is to say everything in it makes intuitive sense if you know exactly how it works which is fine for developers, not exactly great for normal user that just wants to have some version control writing his novel.

But I think tooling got to the point where that is no longer the problem.

The "porcelain" (as opposed to the chrome) is terribly arcane.

I had a really tremendously bad experience with using git professionally and haven't touched it since, but apparently instead of something like "undo" you get "reflog." I don't know what to say about that. Everyone tells me that the internals are great, wonderful, magic, and I am willing to accept that on face value, but the selection of command names just baffles me. As a solo developer, I will just live without it until the names make more sense and I can find a use case.

(I am quite sure that someone will begin howling that you cannot program without git the same way projects cannot be done without Agile, and yet programming existed before either.)

It's not the internals that make Git special, it's the fact that GitHub uses it, and all the other developers know it.

I always say people should learn VCS at the same time as their first programming language, it's that important. And GitHub is as close to "the standard" VCS as it gets.

Git cola makes most tasks easy, and the stuff it can't do, can be googled.