4 ms·
I understand why everyone wants git cheatsheets (there are a lot of commands), but I have yet to see a cheatsheet/etc that does little more than become a crutch
by epicide 8y ago
I understand why everyone wants git cheatsheets (there are a lot of commands), but I have yet to see a cheatsheet/etc that does little more than become a crutch.
For better or for worse, git really demands that you learn the concepts and fundamentals. It has a steep learning curve, but it's one that easily pays dividends.
Do I wish it were easier to learn? Of course.
Can you substitute actually learning how git and its workflows are used with cheatsheets and quick primers? Not remotely.
That being said, I think this one is a step in the right direction by being interactive. Something like a "git simulator" could be incredibly powerful in teaching people git.
- jacobsenscott 8y agoThis is actually a good learning tool, and not just a cheatsheet. Understanding how the data moves around the different parts of the git repository is half the battle.
- epicide 8y agoLike I said, I think it's a step in the right direction. It provides a bit more guidance than a typical cheatsheet, but I'd still consider it mainly a cheatsheet. It doesn't really show how data moves around the different parts as much as it hints that something moves into these nebulous buckets when you run certain commands.
- kstenerud 8y agoThe problem is that git has terrible U/X. The commands are unintuitive, have defaults that nobody uses, and use names that are prone to misinterpretation because they have completely different meanings from what you'd expect. It's not only difficult to learn; it's difficult to remember the commands and the switches you have to add every single time (why?), and all the extra commands you have to throw in just to get from a checkout to a complete working tree. Git's UI really needs an overhaul. Unfortunately, I fear it is already too late.
- octosphere 8y ago> The problem is that git has terrible U/X. I know this pain. Trying to debug a merge conflict for the first time is like trying to do open heart surgery with no prior training.
- da_chicken 8y agoThis is it exactly. I'm really kind of tired of the "git demands you understand the concepts and the model" excuse because that really isn't what's going on. It's just a poor interface with an un-intuitive set of commands that are organized according to what makes sense to the person who developed the software rather than what makes sense to a person using the software. Lots of systems demand that you learn the underlying concepts and structures. Indeed, nearly all computer systems demand that when you get to a developer, operations, or admin level. It's actually kind of condescending to keep seeing people repeating that over and over. It's not difficult to understand that git is basically a repository of a repository. If you already understand branching and merging from SVN, it's easy to explain git with a single image[0]. It's still difficult to learn to use git and absolutely nothing about the software eases that transition. Claiming the problem must be with the user and their inability to learn the system should clearly have been incorrect somewhere around 8 years ago when people were still struggling to learn it after it had been out for 5 years. I imagine some day we'll run into a situation that's similar to apt vs apt-get vs aptitude where there are multiple clients that do the same thing, but it's not clear to me if someone will just create a better product before that time comes along (that product is probably the GitHub client). [0]: https://images.osteele.com/2008/git-transport.png https://images.osteele.com/2008/git-transport.png
- massaman_yams 8y agoAnother comparison: iptables with its hard-to-remember syntax, vs ufw. As UFW is just a wrapper for iptables, I wonder if there's a real possibly of a Git replacement just being a wrapper that simplifies the syntax and maybe some of the conceptual model.
- mayormcsheese 8y ago
- Analemma_ 8y agoEven once you learn git's fundamentals, the UI still sucks though. I like to think I have a pretty good grasp on the git model, but I still consider this article an absolute must for git use: http://gggritso.com/human-git-aliases http://gggritso.com/human-git-aliases Whenever I use a computer and I don't have "git unstage", "git discard", "git publish", etc. it feels like I've lost my opposable thumbs
- invalidusernam3 8y agoGit gets complex pretty fast, but in teaching the junior devs starting at my company I realized there are really only 5 or so commands that get used on a daily basis for the basic stuff: fetch, checkout, add, commit, push I think if people new to git can wrap their heads around those, the rest is easier to learn and can be learnt as needed
- hypervis0r 8y agohttps://xkcd.com/1597/ https://xkcd.com/1597/
- maemilius 8y agoThis is why I now start every git problem-solving session with "Do you want me to fix it or do you want me to help you fix it?"
- ken 8y agoI could replace "git" and "cheatsheet" with "Unix" and "GUI", or "ed" and "screen editor", or any number of other difficult tasks. Yet even the experts I know today don't use Unix without any GUI -- or line editors. I've been using git for almost 10 years now, and I've read the "concepts and fundamentals" many times, yet I still find these handy. I still google common git tasks, and take the first StackOverflow hit and paste it in my shell. Knowing the fundamentals doesn't make it any easier to memorize overly-complex sequences of steps. Or maybe it does, but it requires someone smarter than me, or twice as long as it took to get both my college degrees. At what point do we admit that something is just too complicated? Reading the Git fundamentals is like learning Maxwell's Equations. Great, you know the fundamentals. That doesn't make it easy to complete any possible task using them. I'm still going to use a cheat sheet (like Ohm's Law!) when I can, rather than deriving everything from fundamentals each time.
- epicide 8y agoI completely agree with you. I think my original wording came off as more harsh than I intended. I was definitely thinking about cheatsheets solely in the context of handing them off to beginners (I am biased towards this since I end up teaching git to a lot of people as part of my job). Using cheatsheets as cheatsheets, as you describe, is totally fitting. I just often see them either getting handed to beginners as "here you can learn git real quick with this" or intermediate users relying on them to look up things that they should probably have committed to memory by now (a good example escapes me, unfortunately).
- brantonb 8y agoHere is a git simulator that GitHub consulting uses in their courses. I particularly like the “Free Explore with Remote” mode. https://git-school.github.io/visualizing-git/ https://git-school.github.io/visualizing-git/
- epicide 8y agoThis is close to what I'm wanting. The problem with this is that it doesn't have anywhere near enough supported commands. Even just basic ones like "git add" don't seem to be included. I think that just makes things even more confusing for absolute beginners, but could be useful for advanced beginners and intermediate git learners. EDIT: I'm realizing this tool will be perfect for creating instructional materials.