3 ms·
Hard disagree, git's docs and UI have improved over the years but every time I have to teach it to a beginner I realize how arcane and scary it is, especially w
by simias 5y ago
Hard disagree, git's docs and UI have improved over the years but every time I have to teach it to a beginner I realize how arcane and scary it is, especially when compared to old school centralized VCSs like subversion.
Not that I'd trade git for subversion mind you, in the hands of a trained individual git is a godsend, but the training part can be arduous.
Even among DVCSs I'd argue that mercurial for instance is vastly easier to pick up.
- zach_garwood 5y agoIf it's an issue of having to read the docs or the man, well I've been at work like this for a little over a decade and I still have to pull up a reference when I want to do something nontrivial in, not only git, but pretty much every cli tool I use on a regular basis. Cli tools, frameworks, libraries, languages... I have to pull up a reference for everything I do as a programmer, so it's hard for me to muster up the indignity for having to look up how git works. If it's a matter of understanding the flow of the tool, then I will have to concede that mercurial probably is easier to understand for the beginner.
- rileymat2 5y ago`git add <file>` Wait, how do I remove it from staging? It seems there should be some symmetric operation, `git remove <file>` or something. Maybe git rm `<file>`, whoa don't do that. No, it is `git reset HEAD -- <file>`. There is no mental symmetry. Or why use add at all? What am I adding it to? It is so generic, why not `git stage file` and `git unstage file`? I agree that you need to read and learn tools, but there is a lack of consistency and symmetry in many of the commands which make it harder.
- cerved 5y agoIt may not be the most mnemonic but it clearly says right in the CLI what you're supposed to do (use "git restore --staged <file>..." to unstage)
- rileymat2 5y agoIt looks like I get that message when I do a git status, not the git add. Also, it looks like "restore" was not added until august 2019. And I have not used it, but will in the future! But this does not exactly help the conceptual issues, because now we have `git revert`, `git reset`, and `git restore`. From an english concept perspective those words are all very similar in meaning.