<story><title>Linus Torvalds: Git proved I could be more than a one-hit wonder</title><url>https://www.techrepublic.com/article/linus-torvalds-git-proved-i-could-be-more-than-a-one-hit-wonder/</url></story><parent_chain><item><author>CydeWeys</author><text>It&amp;#x27;s a shame how poor the command-line usability of the git client is.  Commands are poorly named and often do the wrong thing.  It&amp;#x27;s really hard to explain to new users why you need to run `git checkout HEAD *` instead of `git reset` as you&amp;#x27;d expect, why `git branch [branchname]` just switches to a branch whereas `git checkout -b [branchname]` actually creates it, etc.&lt;p&gt;I really wish he&amp;#x27;d collaborated with some more people in the early stages of writing git to come up with an interface that makes sense, because everyone is constantly paying the cost of those decisions, especially new git learners.</text></item><item><author>wbl</author><text>Linux in part won because the Regents were getting sued at a critical time. Without linux we would run BSD and it would be fine.&lt;p&gt;Git is good in some ways, terrible in others. I&amp;#x27;ve used it for years and still don&amp;#x27;t feel really comfortable with it, but I&amp;#x27;ve never had something as multiheaded as the linux repo.</text></item><item><author>empath75</author><text>He’s probably responsible for more wealth creation than anybody in the last hundred years just from those two projects.</text></item></parent_chain><comment><author>asdkhadsj</author><text>I don&amp;#x27;t even know what `git checkout HEAD * ` does lol. Does it just checkout the current branch to the HEAD of that branch?&lt;p&gt;I can never seem to guess what things do in Git, and I consider myself fairly comfortable with the core concepts of Git. Having written many types of append-only &amp;#x2F; immutable &amp;#x2F; content address data systems &lt;i&gt;(they interest me)&lt;/i&gt;, you&amp;#x27;d think Git would be natural to me. While the core concepts are natural, Git&amp;#x27;s presentation of them is not.. at least, to me.&lt;p&gt;&lt;i&gt;edit&lt;/i&gt;: formatting with the * .</text></comment>
<story><title>Linus Torvalds: Git proved I could be more than a one-hit wonder</title><url>https://www.techrepublic.com/article/linus-torvalds-git-proved-i-could-be-more-than-a-one-hit-wonder/</url></story><parent_chain><item><author>CydeWeys</author><text>It&amp;#x27;s a shame how poor the command-line usability of the git client is.  Commands are poorly named and often do the wrong thing.  It&amp;#x27;s really hard to explain to new users why you need to run `git checkout HEAD *` instead of `git reset` as you&amp;#x27;d expect, why `git branch [branchname]` just switches to a branch whereas `git checkout -b [branchname]` actually creates it, etc.&lt;p&gt;I really wish he&amp;#x27;d collaborated with some more people in the early stages of writing git to come up with an interface that makes sense, because everyone is constantly paying the cost of those decisions, especially new git learners.</text></item><item><author>wbl</author><text>Linux in part won because the Regents were getting sued at a critical time. Without linux we would run BSD and it would be fine.&lt;p&gt;Git is good in some ways, terrible in others. I&amp;#x27;ve used it for years and still don&amp;#x27;t feel really comfortable with it, but I&amp;#x27;ve never had something as multiheaded as the linux repo.</text></item><item><author>empath75</author><text>He’s probably responsible for more wealth creation than anybody in the last hundred years just from those two projects.</text></item></parent_chain><comment><author>johnmaguire2013</author><text>A small correction...&lt;p&gt;`git branch [branchname]` creates a branch without switching to it.&lt;p&gt;`git checkout -b [branchname]` creates a branch and checks it out.&lt;p&gt;And `git reset --hard` will also discard changes. (Arguably, this is better than `git reset` discarding local changes, as it is more explicit.)</text></comment>