3 ms·
I say this as a senior dev with 8+ years of experience working with git: git is nightmarishly complex. Highly stateful, insanely large CLI surface, huge amounts
by brundolf 4y ago
I say this as a senior dev with 8+ years of experience working with git: git is nightmarishly complex. Highly stateful, insanely large CLI surface, huge amounts of terminology/concepts relative to the complexity of what you're actually trying to do with it. I've learned to navigate its waters over the years, fully appreciate the difference between git and GitHub, etc etc, and I don't blame anybody for being scared away by its complexity.
- yonaguska 4y agoIt might be hugely complex, but at the same time, I'd posit that 90 percent of devs use only 1 percent of its functionality, 95 percent of the time they use it, and get work done.
- ssully 4y agoAs a whole, you are absolutely correct. But 99% of your daily interactions with Git come down to a handful of commands. Hell, print out a cheat sheet and tape it to your desk for the first few months of using it and you will be more than fine.
- _ph_ 4y agoUntil you make the slightest mistake and your work area gets into a state not covered by the cheat sheet. But of course, the standard recommendation seems to be just to remove the work area and check it out again :p
- prepend 4y agoI’ve used git for 15 years or so. I use the same 5 commands. I haven’t run into a situation like you describe where I lose everything. Worst case scenario is that I lose a check in, but even that is rare as I can just copy over, start with a fresh clone, and reapply. I don’t think there’s a significant danger of messing up a project. And again, this is just basic developer capabilities and developers should be familiar with a vcs enough.
- ratww 4y agoWell you can always for help from a co-worker more experienced with Git, or just search the internet for help. That could be a teaching moment.
- BeetleB 4y ago> That could be a teaching moment. Given the context of this thread, comments like these are part of the reasons teams don't use Git. One probably needs 10x such teaching moments with Git compared to other VCs - including good DVCS.
- ratww 4y agoConsidering the popularity of git itself and the fact it is successfully taught at bootcamps and university at a satisfactory level, I would disagree that being a “deep tool” is part of the reason it’s not 100% ubiquitous. The easy parts are still very accessible to newcomers and the existence of deep part doesn’t negate that. And I also take issue with calling its “non-100% ubiquity” a problem. There is plenty of space for other tools. If anything, there’s almost a “git monopoly”. Sure it could improve in parts, but the general discussion here doesn’t seem to be focused on improvements at all…
- _ph_ 4y agoWell, that proves the point that just having a cheat sheet isn't a complete solution. And unfortunately, I am the co-worker more experienced with Git :p. Well not quite, I have a co-worker who is roughly on my level and we keep helping each other and of course trying to google ourselves out of every corner we got us into. The practical approach was to write a simple GUI which supports the operations "Pull" "Stage" "Commit" "Push", which makes live quite easy. And otherwise, try to keep out of anything more complex, until really neede. Works quite well, but I cannot say I am entirely happy. There are some benefits though, due to our company using a GitHub Enterprise installation for all version control. Ironically, our group recommended that some years ago, but because GitHub comes with a lot of neat features, less so because our love of git :) And yes, over time, I am picking up more of it, but I try to do that on a slow pace, because I consider VC a tool which is important for work, but which shouldn't take time away from work. And Git definitely takes a lot of time to learn, there are far too many mechanics exposed to the end user.
- prepend 4y agoGit is super complex, yet it can be used successfully with just a few commands. I blame developers and even most users for being too scared to use it. I think it’s perfectly normal to be scared of it while using it. I think all users of technology should have some basic competence. Like every human should be able to be a basic Unix user, every human is capable of using git. And every developer should be capable.
- BeetleB 4y agoOriginal commenter here. Every one should be able to use Git. However, Git really isn't the best tool for everyone - or even most developers.
- marcosdumay 4y agoThe more relevant point is: do you refuse to work on some code or use a VCS on your code because of this complexity? That was the GP's point. He acknowledged it's complex. But it's a very clear and very large amount of value left on the table, so people that gets scared away by it will probably practice other kinds of harmful behavior. (Of course, the option of just using a simpler VCS doesn't tell anything bad about people. Why did we standardize on git again?)
- BeetleB 4y ago> Of course, the option of just using a simpler VCS doesn't tell anything bad about people. Why did we standardize on git again? My issue wasn't with their refusal to use Git per se. It was their refusal to find something better than SVN. Given the choice, I too would pick something other than Git. But still better than SVN.