<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>版本控制 on 我的技术博客</title>
    <link>https://blogvoyant.pages.dev/tags/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6/</link>
    <description>Recent content in 版本控制 on 我的技术博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 28 Jul 2026 00:00:00 +0800</lastBuildDate>
    <atom:link href="https://blogvoyant.pages.dev/tags/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Git 使用命令完全指南</title>
      <link>https://blogvoyant.pages.dev/posts/git-commands-guide/</link>
      <pubDate>Tue, 28 Jul 2026 00:00:00 +0800</pubDate>
      <guid>https://blogvoyant.pages.dev/posts/git-commands-guide/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📖 &lt;strong&gt;导读&lt;/strong&gt;：这篇文章面向第一次接触 Git 的新手小白。我会从&amp;quot;版本控制到底是什么&amp;quot;讲起，把每个命令的作用、参数和实际使用场景都讲清楚。对出现的专业名词用 &lt;code&gt;💡 注&lt;/code&gt; 的形式补充通俗解释，命令都可以直接照抄使用。文末附一张速查表和几个实战场景——其中就包括&lt;strong&gt;用 Git 发布本博客的完整流程&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Git 是目前世界上最流行的&lt;strong&gt;分布式版本控制系统&lt;/strong&gt;，由 Linux 之父 Linus Torvalds 在 2005 年创建。无论你是写代码、写博客（比如这个 Hugo 博客就是用 Git 管理并发布到 Cloudflare Pages 的），还是协作写任何文本文件，Git 都能帮你记录每一次修改、随时回到历史版本、和他人协同而不互相覆盖。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;注（版本控制系统，Version Control System）&lt;/strong&gt;：你可以把它理解成一个&amp;quot;无限次后悔药 + 时光机&amp;quot;。普通方式改文件，改错了就回不去了；用版本控制，每一次改动都会被存成一个&amp;quot;快照&amp;quot;，你随时能回到任何一个历史时刻，也能对比两个时刻之间的差异。&lt;/p&gt;
&lt;p&gt;💡 &lt;strong&gt;注（分布式 distributed）&lt;/strong&gt;：早期的版本控制系统是&amp;quot;集中式&amp;quot;的——有一台中央服务器存着所有历史，大家改完都传给它。分布式则是&lt;strong&gt;每台电脑上都存着完整的版本历史&lt;/strong&gt;，不依赖中央服务器也能工作，更安全也更灵活。Git 就是分布式的代表。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-什么是-git为什么需要它&#34;&gt;1. 什么是 Git？为什么需要它？&lt;/h2&gt;
&lt;p&gt;在没有 Git 之前，人们管理文件版本常常是这样的：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;论文.doc
论文-改.doc
论文-最终版.doc
论文-最终版2.doc
论文-真的最终版.doc
论文-打死不改版.doc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这种方式的问题显而易见：文件越来越多、不知道哪个是最新、不知道改了什么、和别人合并修改时一团糟。&lt;/p&gt;
&lt;p&gt;Git 解决的正是这些问题。它给你带来的能力是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;记录历史&lt;/strong&gt;：每一次提交（commit）都是一个存档点，能随时回到任意存档点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对比差异&lt;/strong&gt;：能查看任意两个版本之间改了哪些行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分支并行&lt;/strong&gt;：可以开一条&amp;quot;分支&amp;quot;去做实验性修改，不影响主干；实验成功再合并回来。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;协作协同&lt;/strong&gt;：多人同时开发，各自在本地改，最后通过远程仓库同步合并。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;备份容灾&lt;/strong&gt;：代码推送到 GitHub 等远程仓库后，本地丢了也能找回。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;注（提交 commit）&lt;/strong&gt;：commit 是 Git 里最核心的动作，意思是&amp;quot;把当前的一组改动正式记录成一个历史版本&amp;quot;。每个 commit 有一个唯一的 ID（一长串哈希字符），记录了谁、什么时候、改了什么、以及一句说明信息。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;集中式-vs-分布式&#34;&gt;集中式 vs 分布式&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;代表&lt;/th&gt;
					&lt;th&gt;历史存放&lt;/th&gt;
					&lt;th&gt;离线工作&lt;/th&gt;
					&lt;th&gt;服务器挂了&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;集中式&lt;/td&gt;
					&lt;td&gt;SVN、CVS&lt;/td&gt;
					&lt;td&gt;只在中央服务器&lt;/td&gt;
					&lt;td&gt;不行&lt;/td&gt;
					&lt;td&gt;全员瘫痪&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;分布式&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;每台电脑都有完整历史&lt;/td&gt;
					&lt;td&gt;可以&lt;/td&gt;
					&lt;td&gt;只影响协作同步，本地照常用&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-安装与初次配置&#34;&gt;2. 安装与初次配置&lt;/h2&gt;
&lt;h3 id=&#34;21-安装-git&#34;&gt;2.1 安装 Git&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;：去官网下载安装包：&lt;a href=&#34;https://git-scm.com/download/win&#34;&gt;https://git-scm.com/download/win&lt;/a&gt;，下载后一路&amp;quot;Next&amp;quot;默认安装即可。安装完成后会自带一个 &lt;strong&gt;Git Bash&lt;/strong&gt; 终端（推荐在 Git Bash 里用 Git，体验最一致）。也可以直接用 PowerShell。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
