<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Git on Yazzyk&#39;s Blog</title>
    <link>https://shroot.dev/categories/git/</link>
    <description>Recent content in Git on Yazzyk&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 14 Sep 2018 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://shroot.dev/categories/git/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Git相关笔记</title>
      <link>https://shroot.dev/posts/git-notes/</link>
      <pubDate>Fri, 14 Sep 2018 00:00:00 +0000</pubDate>
      <guid>https://shroot.dev/posts/git-notes/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;参考文章：&lt;a href=&#34;https://www.runoob.com/git/git-tutorial.html&#34;&gt;菜鸟教程&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;配置&#34;&gt;配置&lt;/h1&gt;&#xA;&lt;h2 id=&#34;用户信息&#34;&gt;用户信息&lt;/h2&gt;&#xA;&lt;p&gt;配置个人的用户信息和电子邮箱：&lt;/p&gt;&#xA;&lt;p&gt;git config &amp;ndash;global user.name &amp;quot;&amp;quot;&#xA;git config &amp;ndash;global user.email&lt;/p&gt;&#xA;&lt;h2 id=&#34;文档编辑器&#34;&gt;文档编辑器&lt;/h2&gt;&#xA;&lt;p&gt;一般会是vi/vim&lt;/p&gt;&#xA;&lt;p&gt;git config &amp;ndash;global core.editor vim&lt;/p&gt;&#xA;&lt;h2 id=&#34;查看配置信息&#34;&gt;查看配置信息&lt;/h2&gt;&#xA;&lt;p&gt;git config &amp;ndash;list&lt;/p&gt;&#xA;&lt;h1 id=&#34;git工作流&#34;&gt;Git工作流&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://cloud.css0209.cn/2018/09/git-process.png&#34;&gt;&lt;img src=&#34;https://cloud.css0209.cn/2018/09/git-process.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt; 工作流程：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;克隆 Git 资源作为工作目录。&lt;/li&gt;&#xA;&lt;li&gt;在克隆的资源上添加或修改文件。&lt;/li&gt;&#xA;&lt;li&gt;如果其他人修改了，你可以更新资源。&lt;/li&gt;&#xA;&lt;li&gt;在提交前查看修改。&lt;/li&gt;&#xA;&lt;li&gt;提交修改&lt;/li&gt;&#xA;&lt;li&gt;在修改完成后，如果发现错误，可以撤回提交并再次修改并提交。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;git的工作区暂存区和版本库&#34;&gt;Git的工作区，暂存区和版本库&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;工作区：就是你在电脑里能看到的目录。&lt;/li&gt;&#xA;&lt;li&gt;暂存区：英文叫stage, 或index。一般存放在 &amp;ldquo;.git目录下&amp;rdquo; 下的index文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。&lt;/li&gt;&#xA;&lt;li&gt;版本库：工作区有一个隐藏目录.git，这个不算工作区，而是Git的版本库。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.runoob.com/wp-content/uploads/2015/02/1352126739_7909.jpg&#34;&gt;&lt;img src=&#34;https://www.runoob.com/wp-content/uploads/2015/02/1352126739_7909.jpg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;图中左侧为工作区，右侧为版本库。在版本库中标记为 &amp;ldquo;index&amp;rdquo; 的区域是暂存区（stage, index），标记为 &amp;ldquo;master&amp;rdquo; 的是 master 分支所代表的目录树。 图中我们可以看出此时 &amp;ldquo;HEAD&amp;rdquo; 实际是指向 master 分支的一个&amp;quot;游标&amp;quot;。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。 图中的 objects 标识的区域为 Git 的对象库，实际位于 &amp;ldquo;.git/objects&amp;rdquo; 目录下，里面包含了创建的各种对象及内容。 当对工作区修改（或新增）的文件执行 &amp;ldquo;&lt;code&gt;git add&lt;/code&gt;&amp;rdquo; 命令时，暂存区的目录树被更新，同时工作区修改（或新增）的文件内容被写入到对象库中的一个新的对象中，而该对象的ID被记录在暂存区的文件索引中。 当执行提交操作（git commit）时，暂存区的目录树写到版本库（对象库）中，master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。 当执行 &amp;ldquo;&lt;code&gt;git reset HEAD&lt;/code&gt;&amp;rdquo; 命令时，暂存区的目录树会被重写，被 master 分支指向的目录树所替换，但是工作区不受影响。 当执行 &amp;ldquo;&lt;code&gt;git rm --cached&lt;/code&gt; &amp;quot; 命令时，会直接从暂存区删除文件，工作区则不做出改变。 当执行 &amp;ldquo;&lt;code&gt;git checkout .&lt;/code&gt;&amp;rdquo; 或者 &amp;ldquo;&lt;code&gt;git checkout --&lt;/code&gt; &amp;quot; 命令时，会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险，会清除工作区中未添加到暂存区的改动。 当执行 &amp;ldquo;&lt;code&gt;git checkout HEAD .&lt;/code&gt;&amp;rdquo; 或者 &amp;ldquo;&lt;code&gt;git checkout HEAD&lt;/code&gt; &amp;quot; 命令时，会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的，因为不但会清除工作区中未提交的改动，也会清除暂存区中未提交的改动。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
