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

Because most users of git don’t really understand it. It’s really hard to learn properly and so most users just memorize the commands for their project’s workflow and ask the resident git expert to help (or nuke their local copy) when things go wrong.


It’s not hard to “really understand Git”. If anything, it’s the opposite problem—Git’s implementation is conceptually simple enough that the only good mental model the end user could possibly have is the implementation model. Systems like Subversion or Perforce or Fossil probably have even more complicated implementations than Git, and largely that’s to support a dumbed-down mental model that doesn’t require learning how the tool actually works. With Git, you learn how it works and you’re set, more or less.


> It’s not hard to “really understand Git”.

Are you going to tell me you've never lost work because you didn't know git well enough to avoid putting your branch into a bad state?


I’ve never lost work that I committed, which is the most you can ask of a version control system.


You've never botched a merge, try to undo it and accidentally lost work? It's happened to me and/or the people I work with roughly once a quarter since I started using git.


You shouldn't be able to lose any committed work in git. If you botch a merge, you can reset to one of the merge parents and try it again. If you botch a "destructive" operation like a reset or a rebase, you can undo it using the reflog, which is essentially a 30-day undo history for every branch in your repository.


No, I can't say that I've ever lost work in that manner in over a decade of using git. The first few times I made a mess of things while trying to do a nontrivial merge it admittedly took a while to figure out how to get back to my starting point, but I guessed (correctly) that it'd be worth spending that time to learn how to do it rather than giving up and throwing away work.


Care to share a botched merge story of yours? I try to learn from others mistakes.


No, I would ask also, that I routinely manage to commit successfully what I change vs. losing my changes when trying to commit them.


Fair—that hasn’t happened to me either, though.




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

Search: