<?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 Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6/</link><description>Recent content in 版本控制 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 23 Oct 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6/index.xml" rel="self" type="application/rss+xml"/><item><title>版本控制</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/</link><pubDate>Thu, 07 Aug 2025 00:00:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/</guid><description>&lt;h2 id="什么是版本控制"&gt;什么是版本控制&lt;/h2&gt;
&lt;p&gt;版本控制是一种系统性的方法，用于管理和跟踪软件开发项目中的代码、文件和资源。它的核心目标是在不同时间点的开发中保持代码的一致性、可追溯性和可维护性。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-01.webp"&gt;&lt;/p&gt;
&lt;h2 id="为什么要做版本控制"&gt;为什么要做版本控制&lt;/h2&gt;
&lt;p&gt;这个问题可以从定义中的关键词可以看出端倪：不同时间点下的代码一致性、可追溯性、可维护性。这里额外补充一点：当今的互联网开发早已步入敏捷迭代，各种动态化方案层出不穷都有着顺应时代潮流的意思，因此软件开发一定会越来越多地涉及到团队开发，团队之间的协作也一定需要这样一个机制去保障稳定性。&lt;/p&gt;
&lt;h2 id="代码一致性"&gt;代码一致性&lt;/h2&gt;
&lt;p&gt;版本控制系统允许开发人员有效地管理和组织项目中的代码。它跟踪每个文件的历史记录，记录了每个版本的变更，包括谁做了什么修改、何时以及为什么。&lt;/p&gt;
&lt;h2 id="可追溯性"&gt;可追溯性&lt;/h2&gt;
&lt;p&gt;版本控制系统允许为重要的里程碑或发布创建标签（&lt;code&gt;tag&lt;/code&gt;），以便轻松识别和回滚到特定版本。&lt;/p&gt;
&lt;p&gt;并且当某个版本的代码出现问题，版本控制系统允许开发人员轻松地回滚到之前的稳定版本，并在不破坏其余代码的情况下进行修复。&lt;/p&gt;
&lt;h2 id="可维护性"&gt;可维护性&lt;/h2&gt;
&lt;p&gt;开发人员可以创建分支（&lt;code&gt;branch&lt;/code&gt;），这是一个独立的代码副本，用于开发新功能、修复错误或进行实验性工作。然后，这些分支可以与主代码库合并，以实现功能集成。&lt;/p&gt;
&lt;h2 id="团队协作"&gt;团队协作&lt;/h2&gt;
&lt;p&gt;在多人协作的环境中，不同开发者可能同时修改代码。版本控制系统确保不同的修改不会互相冲突，以及如何解决冲突。&lt;/p&gt;
&lt;p&gt;版本控制系统促进了团队之间的协作，可以通过代码审查工具进行代码审查，以确保代码质量和一致性。&lt;/p&gt;
&lt;h2 id="版本控制工具git"&gt;版本控制工具&lt;code&gt;Git&lt;/code&gt;&lt;/h2&gt;
&lt;h2 id="git的安装"&gt;&lt;code&gt;Git&lt;/code&gt;的安装&lt;/h2&gt;
&lt;h3 id="windows"&gt;&lt;code&gt;WIndows&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;访问 &lt;a href="https://link.juejin.cn/?target=https%3A%2F%2Fgit-scm.com%2Fdownload%2F"&gt;Git官网&lt;/a&gt;，选择对应的操作系统下载即可。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-02.webp"&gt;&lt;/p&gt;
&lt;p&gt;这里下载独立安装包即可&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-03.webp"&gt;&lt;/p&gt;
&lt;p&gt;点&lt;code&gt;install&lt;/code&gt;就行，会自动安装一个&lt;code&gt;git GUI&lt;/code&gt;工具，但通常不会直接用它&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-04.webp"&gt;&lt;/p&gt;
&lt;p&gt;下载完成安装即可，输入以下命令验证安装是否成功&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-05.webp"&gt;&lt;/p&gt;
&lt;h3 id="图形化工具"&gt;图形化工具&lt;/h3&gt;
&lt;h4 id="安装"&gt;安装&lt;/h4&gt;
&lt;p&gt;这里推荐&lt;a href="https://link.juejin.cn/?target=https%3A%2F%2Ftortoisegit.org%2F"&gt;TortoiseGit&lt;/a&gt;这个工具，非常方便。但我觉得Git本身学习成本并不高，&lt;code&gt;GUI&lt;/code&gt;工具更多是为了提升效率，基本的&lt;code&gt;Git&lt;/code&gt;知识点还是需要掌握的。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-06.webp"&gt;&lt;/p&gt;
&lt;p&gt;下载本体&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-07.webp"&gt;&lt;/p&gt;
&lt;p&gt;然后是语言包&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-08.webp"&gt;&lt;/p&gt;
&lt;p&gt;安装时一路&lt;code&gt;next&lt;/code&gt;即可，安装完本体后再安装语言包。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-09.webp"&gt;&lt;/p&gt;
&lt;p&gt;配置好&lt;code&gt;Github&lt;/code&gt;的账户、邮箱、秘钥等，注意配置好了密钥也不会在下述部分显示，可以打开编辑全局进行查看&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-10.webp"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-11.webp"&gt;&lt;/p&gt;
&lt;h4 id="使用"&gt;使用&lt;/h4&gt;
&lt;p&gt;在使用之前先提前补充一个点（后续会详细介绍），&lt;code&gt;Git&lt;/code&gt;有本地仓库和远端仓库的概念，通常支持&lt;code&gt;HTTPS&lt;/code&gt;和&lt;code&gt;SSH&lt;/code&gt;两种协议进行关联，两种方式优缺点也十分明显：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HTTPS&lt;/code&gt;：无需额外配置，但是在每次连接远端仓库时需要输入账号密码进行校验。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SSH&lt;/code&gt;：生成一组密钥对，需要本地进行配置，好处是配置好后每次连接远端仓库时会自动比较密钥对，无需额外校验。关于&lt;code&gt;SSH&lt;/code&gt;详细可以参考这篇文章&lt;a href="https://juejin.cn/post/7111881008630202398"&gt;ssh-远程登录协议&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为了一劳永逸，我们这里配置下&lt;code&gt;SSH&lt;/code&gt;，首先打开&lt;code&gt;Git bash&lt;/code&gt; &lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-12.webp"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# 输入下列命令，最后一个参数是您的邮箱
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ssh-keygen -t rsa -C yourEmail.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以看到密钥对已经生成了&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-13.webp"&gt;&lt;/p&gt;
&lt;p&gt;进入上述目录，注意&lt;code&gt;.ssh&lt;/code&gt;文件夹默认是隐藏的，直接访问路径就行&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-14.webp"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-15.webp"&gt;&lt;/p&gt;
&lt;p&gt;以&lt;code&gt;Github&lt;/code&gt;为例，配置公钥&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-16.webp"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-17.webp"&gt;&lt;/p&gt;
&lt;p&gt;创建一个&lt;code&gt;Demo&lt;/code&gt;项目，平时学习的话就创建公有项目就行&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-18.webp"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-19.webp"&gt;&lt;/p&gt;
&lt;p&gt;复制一下我们的项目链接&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/engineering/engineering-007/image-20.webp"&gt;&lt;/p&gt;
&lt;p&gt;选取一个你喜欢的目录作为本地工作区，然后按鼠标右键&lt;/p&gt;</description></item></channel></rss>