4 ms·
As another commenter said, Git is so pervasive that learning something else would put you at a big disadvantage. That doesn't excuse Git having an unintuitive
by robertakarobin 6y ago
As another commenter said, Git is so pervasive that learning something else would put you at a big disadvantage.
That doesn't excuse Git having an unintuitive UI that makes it very difficult to learn. It has that in common Vim, Emacs, the command line itself... and programming in general. What they also have in common is that once you get used to them they're wonderful tools.
If you don't practice using branches, resetting, rebasing, etc., you're not going to get good with them. Create a dummy repo and practice. There's no "easy button."
I was terrified of Git when I started using it. All the time, I would call in senior colleagues to resolve Git issues that went over my head.
Nowadays, I use Git for coding as well as writing, vector graphics, datasets, and anything else that isn't stored in binary. The time it took to get here was well worth it.
- jjav 6y ago> That doesn't excuse Git having an unintuitive UI that makes it very difficult to learn. It has that in common Vim, Emacs, the command line itself... and programming in general. What they also have in common is that once you get used to them they're wonderful tools I can't agree with that. Emacs, UNIX CLI etc are indeed powerful tools with a steep learning curve but they are wonderful once learned. Git? Not so much. Git is not any better than mercurial (to OP: I recommend mercurial) but git is extremely user hostile to an extreme I can't think of any other popular tool ever. Over the decades I've probably used every well-known source control system (and a handful less famous ones) and git is the only one where if I need to do anything out of the ordinary I will always backup the whole tree first because it's 50/50 odds git will go into some inexplicable and unrecoverable state and the code is lost. I've never had that happen with any other source control tool. Kinda defeats the point of source control. I do agree with everyone saying git is a plague we must face so do learn it. I suggest doing so at work where they pay you to do unfun things, that's why they call it a job. For personal/pleasure project I want to enjoy quality tools that are well designed, pleasant to use and don't fight against me - so I use mercurial.
- robertakarobin 6y agoPersonally, I don't ever really find myself needing to back up a tree, or find myself encountering something unexpected (outside of the code itself). In my experience Git is extremely reliable... but only if you enter its weird commands with no typos whatsoever. Hence: this enormous dotfile I maintain that is half Git shortcuts: https://github.com/RobertAKARobin/dotfiles/blob/master/.bash_profile_helpers#L108 https://github.com/RobertAKARobin/dotfiles/blob/master/.bash... It makes me think of an old car that only the owner can drive, because it'll break down for anyone who hasn't memorized all its quirks (e.g. my own bumper-sticker-covered, manual-transmission 1996 Toyota Corolla, fondly named Sharon). Again, though, I have the same relationship with virtually all frameworks, tools, and languages (looking at you, Bash).
- tomjen3 6y agoI have no idea what you are doing, I have only ever seen git lose data when I did an interactive rebase, and those are easy enough to backup, as all you need to do is do them on a new branch. If git is confusing, I suggest reading up on merkle trees and directed graphs - I found git understandable once I grokked its mental model. Still sometimes have to lookup the actual commands, but it is very rarely the case that I am confused by anything.