<story><title>Git is too hard</title><url>https://changelog.com/posts/git-is-simply-too-hard</url></story><parent_chain><item><author>rjmunro</author><text>The underlying technology of git is great, but the UX is terrible. The commands are all named wrong. &amp;quot;To create a branch, use git branch, but that doesn&amp;#x27;t check it out. If you want to create it and check it out at the same time use &amp;quot;git checkout -b&amp;quot;, not &amp;quot;git branch --checkout&amp;quot; which would be 1000x more logical (and then there could be an option to make that the default behaviour)&lt;p&gt;Resisting GUI&amp;#x27;s is not a good idea. The trick to learning is to always have `gitk --all` or a similar viewer open in another window.&lt;p&gt;Also instead of `git add` &amp;#x2F; `git commmit`, use `git gui`, but for most other things stick to the CLI.&lt;p&gt;Having said that use a GUI, github desktop is terrible. It tries to make things easier and as a result takes you away from git&amp;#x27;s standard terminology, so it&amp;#x27;s impossible to understand what it does.&lt;p&gt;Something I found teaching other people is it helps a lot if you haven&amp;#x27;t learnt SVN before.</text></item></parent_chain><comment><author>ivanhoe</author><text>I don&amp;#x27;t think memorizing commands is really the problem. Learning just 8 git commands (clone, pull, checkout, checkout -b, commit, push, merge, rebase) will cover like 99% of situations average dev will ever encounter. And when you need something more exotic you usually can google it, usually in under 5 mins.&lt;p&gt;The problem, at least for me, was the complexity of the model which makes the whole thing super scary when you&amp;#x27;ve just started using it. That&amp;#x27;s where GUI tools come useful, as people are generally less scared of GUI tools - they make you feel there&amp;#x27;s less of chance of making a mistake because you put the trust in the tool to stop them doing something obviously stupid. However IME that trust is not really deserved as most of the GUI tools will just as happily let you mess up your repository...</text></comment>
<story><title>Git is too hard</title><url>https://changelog.com/posts/git-is-simply-too-hard</url></story><parent_chain><item><author>rjmunro</author><text>The underlying technology of git is great, but the UX is terrible. The commands are all named wrong. &amp;quot;To create a branch, use git branch, but that doesn&amp;#x27;t check it out. If you want to create it and check it out at the same time use &amp;quot;git checkout -b&amp;quot;, not &amp;quot;git branch --checkout&amp;quot; which would be 1000x more logical (and then there could be an option to make that the default behaviour)&lt;p&gt;Resisting GUI&amp;#x27;s is not a good idea. The trick to learning is to always have `gitk --all` or a similar viewer open in another window.&lt;p&gt;Also instead of `git add` &amp;#x2F; `git commmit`, use `git gui`, but for most other things stick to the CLI.&lt;p&gt;Having said that use a GUI, github desktop is terrible. It tries to make things easier and as a result takes you away from git&amp;#x27;s standard terminology, so it&amp;#x27;s impossible to understand what it does.&lt;p&gt;Something I found teaching other people is it helps a lot if you haven&amp;#x27;t learnt SVN before.</text></item></parent_chain><comment><author>skohan</author><text>&amp;gt; Resisting GUI&amp;#x27;s is not a good idea.&lt;p&gt;I disagree.  In my personal experience, learning git took a lot of trial and error, but now whatever terminal I sit down in front of, I know exactly which commands I have to run to do what I want in git.  When using a GUI, it&amp;#x27;s fine for the easy&amp;#x2F;common stuff, but if I want to do something more complex I have to figure out how to dig through the options provided by the tool to get the result I want.</text></comment>