<story><title>Some bad Git situations and how I got myself out of them</title><url>http://ohshitgit.com/</url></story><parent_chain><item><author>eyelidlessness</author><text>I can&amp;#x27;t believe no one has responded yet with &amp;quot;use a GUI&amp;quot;. After gaining a basic understanding of how branches and merges work, and I do mean &lt;i&gt;basic&lt;/i&gt;, I&amp;#x27;ve never been able to screw up a local repo with a GUI client enough that I haven&amp;#x27;t been able to recover with the same GUI tools.&lt;p&gt;I understand that people need to know how to use their tools, but for git most people can get away with the very basic usage that GUIs provide. If you&amp;#x27;ve made some unrecoverable mistake with an important set of changes, you can always review the history in the same GUI and reimplement the important changes in a new branch.</text></item></parent_chain><comment><author>breatheoften</author><text>Its true -- and actually the well designed gui that accurately depicts the graphical state of your local repository makes it far easier to learn the concepts behind git than does the command line.  Distributed vc is conceptually nuanced, but not overly complicated -- the complexity of git really is in the interface wherein you are asked to map command line syntax into abstract operations that manipulate a state that you actually can&amp;#x27;t easily see from the command line.  The value of having a graphical depiction of the state that&amp;#x27;s changing as you invoke operations should not be underestimated.&lt;p&gt;&lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;gitup.co&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;gitup.co&lt;/a&gt;&lt;p&gt;I love this tool -- it&amp;#x27;s honestly one of the best graphical tools I&amp;#x27;ve ever used -- rock solid reliable -- intuitive, not leaky in the abstractions it represents -- and not limited to only &amp;quot;simple&amp;quot; operations.  And with the graphical reflog history rollback view -- it&amp;#x27;s always really easy to back up however far you want if you mess up which gives great confidence as you explore the ui&amp;#x27;s features.  Ive taken designers from &amp;quot;never used git&amp;quot; to confidently pushing, pulling, rebasing, and resolving conflicts in less than a day (and most of it after the first 10 minutes without outside help).</text></comment>
<story><title>Some bad Git situations and how I got myself out of them</title><url>http://ohshitgit.com/</url></story><parent_chain><item><author>eyelidlessness</author><text>I can&amp;#x27;t believe no one has responded yet with &amp;quot;use a GUI&amp;quot;. After gaining a basic understanding of how branches and merges work, and I do mean &lt;i&gt;basic&lt;/i&gt;, I&amp;#x27;ve never been able to screw up a local repo with a GUI client enough that I haven&amp;#x27;t been able to recover with the same GUI tools.&lt;p&gt;I understand that people need to know how to use their tools, but for git most people can get away with the very basic usage that GUIs provide. If you&amp;#x27;ve made some unrecoverable mistake with an important set of changes, you can always review the history in the same GUI and reimplement the important changes in a new branch.</text></item></parent_chain><comment><author>K0nserv</author><text>I have to disagree, I&amp;#x27;ve seen people paint themselves into really hard to get out of corners by using GUI tools and not understanding the underlying tool. git GUIs are leaky abstractions that sometimes even change the meaning of core git concepts. I always recommend people start by using git at the command line until the have a solid understanding of how the tool works before switching to a GUI.</text></comment>