<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>学习 on 疏间徒泍の旅途</title>
        <link>https://SJTdreams.github.io/tags/%E5%AD%A6%E4%B9%A0/</link>
        <description>Recent content in 学习 on 疏间徒泍の旅途</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>疏间徒泍</copyright>
        <lastBuildDate>Wed, 11 Feb 2026 10:55:34 +0800</lastBuildDate><atom:link href="https://SJTdreams.github.io/tags/%E5%AD%A6%E4%B9%A0/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>一种有趣的数学构筑尝试</title>
        <link>https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/</link>
        <pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate>
        
        <guid>https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/</guid>
        <description>&lt;img src="https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/title.png" alt="Featured image of post 一种有趣的数学构筑尝试" /&gt;&lt;h1 id=&#34;一种有趣的数学构筑法&#34;&gt;一种有趣的数学构筑法
&lt;/h1&gt;&lt;h1 id=&#34;一引言&#34;&gt;一、引言
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;在看到某些分段函数时，其中所蕴含的一种“不够直接”的感觉往往令我感到难受。我们是否能找到一种方式，来用任意一个函数拟合各种特别的分段函数呢？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在必修一的课本上，存在这样一幅函数图像：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image1.PNG&#34;
	width=&#34;714&#34;
	height=&#34;223&#34;
	srcset=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image1_hu_6fb51456b3ab694d.PNG 480w, https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image1_hu_bd5f5984aa405120.PNG 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;image1&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;320&#34;
		data-flex-basis=&#34;768px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;​	课本上对于该函数的表达式为：&lt;/p&gt;
$$
y=\left|x-2k\right|\left(2k-1&lt;x&lt;2k+1\right)\left(k∈Z\right)
$$&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;然而，当我们尝试直接在&lt;strong&gt;desmos&lt;/strong&gt;中使用这个公式时，我们会遇到这样的问题：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image2.PNG&#34;
	width=&#34;447&#34;
	height=&#34;80&#34;
	srcset=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image2_hu_f34d5e3343fb36ff.PNG 480w, https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image2_hu_89a91fe33fe21c1d.PNG 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;image2&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;558&#34;
		data-flex-basis=&#34;1341px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;​	让我们来考虑一个问题：&lt;strong&gt;能否不用这种带括号指定范围的分段函数，来实现相同的效果&lt;/strong&gt;呢？&lt;/p&gt;
&lt;p&gt;​	先看结论！这个函数，写成&lt;strong&gt;这样子&lt;/strong&gt;（可以复制到desmos里尝试）：
&lt;/p&gt;
$$
y = \left(\left(-1\right)^{1+\lceil x \rceil} \cdot \text{mod}\left(x, 1\right)\right) + \left(\text{mod}\left(\lfloor x \rfloor, 2\right)\right)
$$&lt;p&gt;
看上去相当的复杂，对吧？在介绍原理之前，我们可以再举一个例子：统计学的&lt;strong&gt;百分位数&lt;/strong&gt;。
&lt;/p&gt;
$$
P_k = 
\begin{cases} 
x_{\lfloor n \cdot k \rfloor + 1}, &amp; \text{如果 } n \cdot k \text{ 不是整数} \\
\frac{x_{n \cdot k} + x_{n \cdot k + 1}}{2}, &amp; \text{如果 } n \cdot k \text{ 是整数}
\end{cases}
$$&lt;p&gt;
这是它的常规公式。那么，我们能否找到一个&lt;strong&gt;独立&lt;/strong&gt;的公式，效果却和百分位数&lt;strong&gt;一模一样&lt;/strong&gt;呢？有的兄弟，有的！先看结论：
&lt;/p&gt;
$$
t = \left( \frac{\lceil | n \times k\% - \lfloor n \times k\% \rfloor | \rceil + 1}{2} \right) \times X_{\lceil n \times k\% \rceil} + \left( \frac{|\lceil \text{mod}(n \times k\%, 1) \rceil - 1|}{2} \right) \times X_{\lceil n \times k\% \rceil + 1}
$$&lt;p&gt;
看上去似乎更加复杂了&amp;hellip;那么，我们要如何写出这样的函数呢？让我们先来拆分下上面两个函数的思路！&lt;/p&gt;
&lt;h1 id=&#34;二逻辑拆分&#34;&gt;二、逻辑拆分
&lt;/h1&gt;&lt;p&gt;尽管以上两个公式令人生畏，但其中包含一个清晰的逻辑。让我们对其进行具体分析：&lt;/p&gt;
&lt;h2 id=&#34;1锯齿函数&#34;&gt;1.锯齿函数
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image1.PNG&#34;
	width=&#34;714&#34;
	height=&#34;223&#34;
	srcset=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image1_hu_6fb51456b3ab694d.PNG 480w, https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image1_hu_bd5f5984aa405120.PNG 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;image1&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;320&#34;
		data-flex-basis=&#34;768px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;观察原图像，我们可以分析一下其具备的规律：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在所有的&lt;strong&gt;偶数到奇数&lt;/strong&gt;段内，曲线从&lt;code&gt;0 - 1&lt;/code&gt;上升。&lt;/li&gt;
&lt;li&gt;在所有的&lt;strong&gt;奇数到偶数&lt;/strong&gt;段内，曲线从&lt;code&gt;1 - 0&lt;/code&gt;下降。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;规则很简单，我们要如何着手这个图像呢？既然我们不打算用括号显式的指定&lt;strong&gt;周期函数&lt;/strong&gt;，那我们不妨用些现成的周期函数。观察&lt;code&gt;mod(x,1)&lt;/code&gt;的图像，我们会发现，这和我们的目标很相似：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image3.PNG&#34;
	width=&#34;1439&#34;
	height=&#34;735&#34;
	srcset=&#34;https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image3_hu_496539bd6f539b32.PNG 480w, https://SJTdreams.github.io/p/%E4%B8%80%E7%A7%8D%E6%9C%89%E8%B6%A3%E7%9A%84%E6%95%B0%E5%AD%A6%E6%9E%84%E7%AD%91%E5%B0%9D%E8%AF%95/image3_hu_e1aa02df82cd685a.PNG 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;image1&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;195&#34;
		data-flex-basis=&#34;469px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;很显然，这个图像在所有的&lt;strong&gt;偶数到奇数&lt;/strong&gt;段完全正确！因此，我们要做的就是把偶数段和奇数段分开处理。怎么做到呢？&lt;/p&gt;
&lt;p&gt;这里我们不妨看看另一个函数：&lt;code&gt;-1^n&lt;/code&gt;。我们都知道，&lt;strong&gt;-1&lt;/strong&gt;的&lt;strong&gt;奇数次幂&lt;/strong&gt;为-1，&lt;strong&gt;偶数次幂&lt;/strong&gt;为1。刚好，我们需要做到的效果是偶数次幂时方向取反。将&lt;strong&gt;偶数到奇数&lt;/strong&gt;区段内的数进行&lt;strong&gt;向上取整&lt;/strong&gt;会使其变成奇数，反之亦然。在这么做之后多取一个**-1**就可以达到效果！（其实直接向下取整也可以）&lt;/p&gt;
&lt;p&gt;那么，我们就得到了第二个关键组件：
&lt;/p&gt;
$$
\left(-1\right)^{1+\lceil x \rceil}
$$&lt;p&gt;
&lt;img src=&#34;image4.PNG&#34; alt=&#34;image1&#34; style=&#34;zoom:75%;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;所得图像如下。&lt;/p&gt;
&lt;p&gt;接下来我们要将所有的&lt;strong&gt;偶数&lt;/strong&gt;（奇数到偶数）区段+1。简单用一个取模函数加上向下取整即可：
&lt;/p&gt;
$$
\left(\text{mod}\left(\lfloor x \rfloor, 2\right)\right)
$$&lt;p&gt;
那么，只要将这三个模块组合，就可以达到完整的函数效果。接下来，让我们分析一下第二个函数：&lt;/p&gt;
&lt;h2 id=&#34;2百分位数&#34;&gt;2.百分位数
&lt;/h2&gt;&lt;p&gt;让我们先观察一下百分位数的逻辑：
&lt;/p&gt;
$$
P_k = 
\begin{cases} 
x_{\lfloor n \cdot k \rfloor + 1}, &amp; \text{如果 } n \cdot k \text{ 不是整数} \\
\frac{x_{n \cdot k} + x_{n \cdot k + 1}}{2}, &amp; \text{如果 } n \cdot k \text{ 是整数}
\end{cases}
$$&lt;p&gt;
为了让式子尽可能的简单，我们来看看存在哪些点可以简化：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首先，当&lt;code&gt;n*k&lt;/code&gt;不是整数的时候，对其进行向下取整再加一完全可以等价于向上取整；&lt;/li&gt;
&lt;li&gt;如果&lt;em&gt;n*k&lt;/em&gt;是整数，n*k的向上取整值不变&lt;/li&gt;
&lt;li&gt;那么，我们可以把逻辑简化为：一定会取一半的当前位数（指n*k向上取整位置）；如果是整数，就取一半下一位数的值；如果不是，则再取一半当前位数&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;再完成这样的分析后，再来写式子就简单多了。&lt;/p&gt;
&lt;p&gt;首先，我们肯定需要一个基底的一半当前位数：
&lt;/p&gt;
$$
t = \frac{1}{2} \times X_{\lceil n \times k\% \rceil}
$$&lt;p&gt;
接下来，我们需要得到一个式子用来判断是否具备小数。有两个简单的式子可以达到这个目的：
&lt;/p&gt;
$$
\lceil x-\lfloor x \rfloor\rceil  \\  \lceil mod(x,1) \rceil
$$&lt;p&gt;
这两个式子具备相同的效果，具体情况是：&lt;strong&gt;在有小数时输出&lt;code&gt;1&lt;/code&gt;，否则输出&lt;code&gt;0&lt;/code&gt;&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;我们只要用这个式子的结果乘以一半的&lt;strong&gt;当前位数&lt;/strong&gt;的值，再拿式子的结果相反值乘以一半的&lt;strong&gt;下一位数&lt;/strong&gt;的值，就可以达成目的了。那么，我们还需要一个取反的式子：
&lt;/p&gt;
$$
-(x-1)  \\ |x-1|
$$&lt;p&gt;
这两个式子都可以达成完全相同的效果。那么，我们只要把数个模块组装起来，就可以得到最终式子：
&lt;/p&gt;
$$
t = \left( \frac{\lceil | n \times k\% - \lfloor n \times k\% \rfloor | \rceil + 1}{2} \right) \times X_{\lceil n \times k\% \rceil} + \left( \frac{|\lceil \text{mod}(n \times k\%, 1) \rceil - 1|}{2} \right) \times X_{\lceil n \times k\% \rceil + 1}
$$&lt;h2 id=&#34;3思考范式&#34;&gt;3.思考范式
&lt;/h2&gt;&lt;p&gt;通过以上两个例子，我们可以注意到，这种方式可以找到一个共通的步骤：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分析原式&lt;/li&gt;
&lt;li&gt;找到规律&lt;/li&gt;
&lt;li&gt;找出式子&lt;/li&gt;
&lt;li&gt;组合&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;分析原式和找到规律的部分似乎没有什么好用的快速方案，然而，式子中却似乎有很多部分是共通的！那么，我们不妨对常用的式子进行一个提取？&lt;/p&gt;
&lt;h1 id=&#34;三公式逻辑门&#34;&gt;三、公式逻辑门
&lt;/h1&gt;&lt;p&gt;为了更好的运用这些公式进行组装，我们不妨采取一个&lt;strong&gt;统一的接口数字&lt;/strong&gt;。那么，我们不妨设为&lt;code&gt;0和1&lt;/code&gt;。其中，&lt;strong&gt;1&lt;/strong&gt;代表&lt;strong&gt;是&lt;/strong&gt;，0代表&lt;strong&gt;否&lt;/strong&gt;！同时，为了方便，我们可以再取&lt;code&gt;1和-1&lt;/code&gt;作为第二套逻辑标准。&lt;/p&gt;
&lt;h2 id=&#34;单位转化&#34;&gt;单位转化
&lt;/h2&gt;&lt;p&gt;那么，当务之急就是先定义出两套标准的转化。我们不妨让0和-1互相转化：
&lt;/p&gt;
$$
1,0 =&gt; 1,-1 : -(-1)^x \\ 1,0 &lt;= 1,-1 :\frac{x+1}{2}
$$&lt;p&gt;
这两串有趣的式子就可以在x值合适的情况下完成转换的工作！接下来，我们再定义出几个有趣的小工具。&lt;/p&gt;
&lt;h2 id=&#34;符号提取&#34;&gt;符号提取
&lt;/h2&gt;&lt;p&gt;符号提取可以将一个大小任意的数字转化到标准信号的一种之中。我们可以很自然的想到这样的方式：
&lt;/p&gt;
$$
\frac{x}{|x|}
$$&lt;p&gt;
然而，这个式子不可兼容0 。那么，我们只能采取一个更加复杂的方案：
&lt;/p&gt;
$$
\lceil( \frac{x}{ (|x|+1)} )\rceil -  \lceil(\frac {-x}{(|x|+1)} )\rceil
$$&lt;p&gt;
不过，在确认输入值 ≠0 的情况下，可以采用第一种方案。&lt;/p&gt;
&lt;h2 id=&#34;提取小数&#34;&gt;提取小数
&lt;/h2&gt;&lt;p&gt;提取小数可以用这两个简单的公式。同时，如果想表达是否“存在小数”，则进行向上取整即可：
&lt;/p&gt;
$$
x-\lfloor x \rfloor \\ mod(x,1)
$$&lt;h2 id=&#34;非运算&#34;&gt;非运算
&lt;/h2&gt;&lt;p&gt;1和-1的非运算再简单不过。我们考虑1和0的非运算：(两式效果相同)
&lt;/p&gt;
$$
|x-1| \\ -(x-1)
$$&lt;h2 id=&#34;与运算&#34;&gt;与运算
&lt;/h2&gt;&lt;p&gt;我们同样有多种方法可以实现该效果：
&lt;/p&gt;
$$
\lfloor\frac{x_1+x_2}{2}\rfloor  \\  x1\times x2
$$&lt;h2 id=&#34;或运算&#34;&gt;或运算
&lt;/h2&gt;&lt;p&gt;我们可以按照逻辑门的角度考虑：非（（非1）与（非2））即或。或者，我们可以用向上取整：
&lt;/p&gt;
$$
\lceil\frac{x_1+x_2}{2}\rceil
$$&lt;p&gt;
其实，拥有了以上三种门之后我们可以构筑出更多东西。在此并不一一列举，不过我们可以尝试构筑一下异或：&lt;/p&gt;
&lt;h2 id=&#34;异或运算&#34;&gt;异或运算
&lt;/h2&gt;&lt;p&gt;我们采用这个逻辑：（1 与 非2）或 （非1 与 2）：
&lt;/p&gt;
$$
\lceil\frac{[(x1\times-(x2-1))+(x2\times-(x1-1))]}{2}\rceil
$$&lt;h2 id=&#34;奇偶切割&#34;&gt;奇偶切割
&lt;/h2&gt;&lt;p&gt;我们可以通过以下两种方式将奇数部分和偶数部分切割。其中，前一种方案采取的是&lt;code&gt;1/-1&lt;/code&gt;编码，后一种采取的是&lt;code&gt;0,1&lt;/code&gt;编码：
&lt;/p&gt;
$$
(-1)^{\lfloor x\rfloor+1}  \\  mod(\lceil x\rceil,2)
$$&lt;h2 id=&#34;周期性取值&#34;&gt;周期性取值
&lt;/h2&gt;&lt;p&gt;用于在满足&lt;strong&gt;周期n&lt;/strong&gt;时取到&lt;strong&gt;值k&lt;/strong&gt;:（可以做成周期性添值或者乘值）
&lt;/p&gt;
$$
k|[mod(\lceil x \rceil,n)]-1|
$$&lt;h2 id=&#34;判断大小&#34;&gt;判断大小
&lt;/h2&gt;&lt;p&gt;判断x是否大于（或小于）某个数k，可以直接将x与k相减，再通过提取符号观察正负即可：
&lt;/p&gt;
$$
\frac{(x-k)}{|(x-k)|}(x≠0) \\\\ \lceil( \frac{(x-k)}{ (|(x-k)|+1)} )\rceil -  \lceil(\frac {-(x-k)}{(|(x-k)|+1)} )\rceil
$$&lt;p&gt;
如果想要判断是否在一定范围内，判断两次然后用与运算即可。&lt;/p&gt;
&lt;h2 id=&#34;选择器&#34;&gt;选择器
&lt;/h2&gt;&lt;p&gt;选择器只要根据条件在两种值中选择一种即可，实现上也非常简单（条件为k，两种情况分别为x1 x2）：
&lt;/p&gt;
$$
k(x_1)-(k-1)(x_2)
$$&lt;h2 id=&#34;多重与多重或&#34;&gt;多重与&amp;amp;多重或
&lt;/h2&gt;&lt;p&gt;多重与和多重或只需要用连乘和连加即可：
&lt;/p&gt;
$$
\prod_{i=1}^{n} x_i  \\ \lceil\frac{1}{n}\sum_{i=1}^{n} x_i\rceil
$$&lt;h2 id=&#34;判断数值&#34;&gt;判断数值
&lt;/h2&gt;&lt;p&gt;要判断x是否等于某个特定的值（k），我们只需要将x-k带进符号判断公式中，并将-1设为1再取反即可：
&lt;/p&gt;
$$
(|\lceil( \frac{x-k}{ (|x-k|+1)} )\rceil -  \lceil(\frac {-(x-k)}{(|x-k|+1)} )\rceil|-1)
$$&lt;h2 id=&#34;区间二分&#34;&gt;区间二分
&lt;/h2&gt;&lt;p&gt;让x在每个区间k内，将前半段和后半段进行区分（返回值0,1）：
&lt;/p&gt;
$$
\lfloor\frac {mod(x,k)}{k}+\frac{1}{2}\rfloor
$$&lt;h1 id=&#34;四实战&#34;&gt;四、实战
&lt;/h1&gt;&lt;p&gt;我们现在可以来快速尝试将上述的内容运用到实战：&lt;/p&gt;
&lt;h2 id=&#34;尝试1relu线性整流函数&#34;&gt;尝试1：ReLU（线性整流函数）
&lt;/h2&gt;&lt;p&gt;RuLU函数的基础函数是：
&lt;/p&gt;
$$
\max(0,x)
$$&lt;p&gt;
我们能否使用上述的内容来完成Relu呢？我们只需要用一个判断函数，在x的前面加上系数：x&amp;gt;0的判断，并将-1转化成0即可（为了实现这个目的，加一再除以2再向下取整）。式子如下：
&lt;/p&gt;
$$
x(\lfloor\frac{\lceil( \frac{(x-k)}{ (|(x-k)|+1)} )\rceil -  \lceil(\frac {-(x-k)}{(|(x-k)|+1)} )\rceil+1\lfloor}{2})
$$&lt;p&gt;
不过，这种方案是直接套模块得到的，我们还有更简单的方案，不过要具体分析情况得到了：
&lt;/p&gt;
$$
\frac{(x + |x|)}{2}
$$&lt;h2 id=&#34;尝试2自定义函数&#34;&gt;尝试2：自定义函数
&lt;/h2&gt;&lt;h3 id=&#34;场景设定&#34;&gt;场景设定
&lt;/h3&gt;&lt;p&gt;假设电费按用量分段计费：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;第一阶梯&lt;/strong&gt;（0~100度）：每度0.5元&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第二阶梯&lt;/strong&gt;（100~200度）：超出100度的部分每度0.8元&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第三阶梯&lt;/strong&gt;（&amp;gt;200度）：超出200度的部分每度1.2元&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;分步构造&#34;&gt;分步构造
&lt;/h3&gt;&lt;h4 id=&#34;1-阶梯区间检测&#34;&gt;1. 阶梯区间检测
&lt;/h4&gt;&lt;p&gt;我们需要三个逻辑信号（1表示属于该区间，0表示不属于）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;k₁&lt;/strong&gt;（第一阶梯）：x ∈ [0,100]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;k₂&lt;/strong&gt;（第二阶梯）：x ∈ (100,200]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;k₃&lt;/strong&gt;（第三阶梯）：x &amp;gt; 200&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;构造方法：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;用&lt;strong&gt;符号差+取整&lt;/strong&gt;检测边界：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
$$
    k_1 = \lceil \frac{100 - x + |100 - x|}{2(100 - x + |100 - x|) + 1} \rceil - \lceil \frac{x - 100 + |x - 100|}{2(x - 100 + |x - 100|) + 1} \rceil + 1
    $$&lt;/li&gt;
&lt;li&gt;
$$
    k_2 = \text{类似方法检测 } (100,200]
    $$&lt;/li&gt;
&lt;li&gt;
$$
    k_3 = \lceil \frac{x - 200}{x - 200 + |x - 200| + 1} \rceil
    $$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;2-阶梯费用计算&#34;&gt;2. 阶梯费用计算
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;$$
   第一阶梯费用：0.5x \cdot k_1\\
  第二阶梯费用：[50 + 0.8(x-100)] \cdot k_2\\
  第三阶梯费用：[130 + 1.2(x-200)] \cdot k_3\\
  $$&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;3-组合输出&#34;&gt;3. 组合输出
&lt;/h4&gt;&lt;p&gt;总费用 = 第一阶梯费用 + 第二阶梯费用 + 第三阶梯费用
通过&lt;strong&gt;逻辑门&lt;/strong&gt;确保只有当前阶梯信号为1时生效：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned}
\text{Cost}(x) = \ &amp;amp;
\frac{x}{2} \left( \left\lfloor \frac{A_1}{2A_1+1} \right\rfloor \left\lfloor \frac{B_1}{2B_1+1} \right\rfloor + 1 \right) \&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\ &amp;amp;
\left( 50 + \frac{4(x-100)}{5} \right) \left( \left\lfloor \frac{A_2}{2A_2+1} \right\rfloor - \left\lfloor \frac{B_2}{2B_2+1} \right\rfloor  k_1 + 1 \right) \&lt;/li&gt;
&lt;li&gt;\ &amp;amp;
\left( 130 + \frac{6(x-200)}{5} \right) \left\lceil \frac{x-200}{C+1} \right\rceil
\end{aligned}
$$&lt;/li&gt;
&lt;/ul&gt;
$$
\begin{aligned}
A_1 &amp;= 100 - x + |100 - x|, \quad B_1 = x - 100 + |x - 100| \\
A_2 &amp;= 200 - x + |200 - x|, \quad B_2 = x - 200 + |x - 200| \\
C &amp;= x - 200 + |x - 200|, \quad k_1 = \left\lfloor \frac{A_1}{2A_1+1} \right\rfloor - \left\lfloor \frac{B_1}{2B_1+1} \right\rfloor + 1
\end{aligned}
$$&lt;h1 id=&#34;五总结&#34;&gt;五、总结
&lt;/h1&gt;&lt;p&gt;这种方法看上去会将简单的函数大幅复杂化，最终得到一个尽管效果相同但式子复杂上许多，但成功消灭了括号和具体的“规则”的式子。同时，这种思维方式相当系统化和模块化，可以实现一种有趣的自由组装的效果，类似于程序一样。&lt;/p&gt;
&lt;p&gt;希望这种方法能够具备一定的参考价值！&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Unity UISystem搭建</title>
        <link>https://SJTdreams.github.io/p/unity-uisystem%E6%90%AD%E5%BB%BA/</link>
        <pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate>
        
        <guid>https://SJTdreams.github.io/p/unity-uisystem%E6%90%AD%E5%BB%BA/</guid>
        <description>&lt;img src="https://SJTdreams.github.io/p/unity-uisystem%E6%90%AD%E5%BB%BA/title.jpg" alt="Featured image of post Unity UISystem搭建" /&gt;&lt;blockquote&gt;
&lt;p&gt;下载链接（蓝奏云）：https://wwts.lanzoub.com/iw4H82ol03kb&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&#34;unity-ui-系统使用指南从零到一构建高效-ui-管理模块&#34;&gt;Unity UI 系统使用指南：从零到一构建高效 UI 管理模块
&lt;/h1&gt;&lt;p&gt;本篇为Unity UI 管理系统，适合中小型项目使用。无论你是个人开发者还是小团队，这套系统都能帮你快速搭建 UI 界面，同时保持代码的整洁和可维护性。&lt;/p&gt;
&lt;p&gt;本文将带你从 &lt;strong&gt;需求分析&lt;/strong&gt; 到 &lt;strong&gt;实际使用&lt;/strong&gt;，一步步掌握这套系统的核心功能和使用方法。我会尽量用通俗的语言，结合实例，让你轻松上手。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一需求分析为什么需要这套系统&#34;&gt;一、需求分析：为什么需要这套系统？
&lt;/h2&gt;&lt;p&gt;在 Unity 中，UI 管理是一个常见的痛点。随着项目规模的扩大，UI 窗口越来越多，代码变得越来越混乱。以下是我在开发中遇到的一些问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;窗口管理混乱&lt;/strong&gt;：每个窗口都需要手动管理 &lt;code&gt;SetActive&lt;/code&gt;，代码重复且难以维护。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源占用高&lt;/strong&gt;：所有窗口常驻内存，导致性能问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;扩展性差&lt;/strong&gt;：新增功能需要修改多处代码，容易引入 Bug。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;调试困难&lt;/strong&gt;：窗口间直接引用，耦合度高，难以定位问题。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;为了解决这些问题，我设计了一套 &lt;strong&gt;基于配置驱动的 UI 管理系统&lt;/strong&gt;，核心思想是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;模块化设计&lt;/strong&gt;：将 UI 功能拆分为独立组件，按需加载。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配置驱动&lt;/strong&gt;：通过配置文件定义窗口属性，减少硬编码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;事件通信&lt;/strong&gt;：通过事件系统解耦窗口间的依赖。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;接下来，我会详细介绍这套系统的各个部分，并通过实例演示如何使用。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二系统组成核心模块介绍&#34;&gt;二、系统组成：核心模块介绍
&lt;/h2&gt;&lt;p&gt;这套系统由以下几个核心模块组成：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;UIManager&lt;/strong&gt;：负责窗口的打开、关闭和层级管理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BaseWindow&lt;/strong&gt;：所有窗口的基类，提供基础功能（如关闭按钮、拖拽）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WindowConfigData&lt;/strong&gt;：配置文件，定义窗口属性（如大小、背景、组件）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EventSystem&lt;/strong&gt;：事件系统，用于窗口间通信。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;编辑器工具&lt;/strong&gt;：快速配置和测试窗口。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;三快速上手从零搭建一个窗口&#34;&gt;三、快速上手：从零搭建一个窗口
&lt;/h2&gt;&lt;h3 id=&#34;1-创建配置文件&#34;&gt;1. 创建配置文件
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;右键菜单 → &lt;code&gt;Create/UI/WindowConfigData&lt;/code&gt;，命名为 &lt;code&gt;MainMenuConfig&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;设置窗口属性：
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;800x600&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;backgroundColor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;#FFFFFFFF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;enableCloseButton&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;enableDraggable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;2-创建窗口预制体&#34;&gt;2. 创建窗口预制体
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;复制 &lt;code&gt;BaseWindow&lt;/code&gt; 预制体，重命名为 &lt;code&gt;MainMenuWindow&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;BaseWindow&lt;/code&gt; 组件中绑定 &lt;code&gt;MainMenuConfig&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;3-打开窗口&#34;&gt;3. 打开窗口
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// 在游戏代码中调用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;UIManager&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;MainMenu&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;四进阶功能动态添加组件&#34;&gt;四、进阶功能：动态添加组件
&lt;/h2&gt;&lt;h3 id=&#34;1-定义组件枚举&#34;&gt;1. 定义组件枚举
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;enum&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WindowComponent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;Draggable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;FadeAnimation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;HighlightEffect&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-修改配置文件&#34;&gt;2. 修改配置文件
&lt;/h3&gt;&lt;p&gt;在 &lt;code&gt;WindowConfigData&lt;/code&gt; 中添加 &lt;code&gt;requiredComponents&lt;/code&gt; 字段：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;requiredComponents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;Draggable&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;FadeAnimation&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;3-动态加载组件&#34;&gt;3. 动态加载组件
&lt;/h3&gt;&lt;p&gt;在 &lt;code&gt;BaseWindow&lt;/code&gt; 中根据枚举值添加组件：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AddComponents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;component&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_configData&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;requiredComponents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;switch&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;component&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;case&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WindowComponent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Draggable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;gameObject&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AddComponent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Draggable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;case&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;WindowComponent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;FadeAnimation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;gameObject&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AddComponent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;FadeAnimation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;break&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;五事件通信解耦窗口逻辑&#34;&gt;五、事件通信：解耦窗口逻辑
&lt;/h2&gt;&lt;h3 id=&#34;1-发送事件&#34;&gt;1. 发送事件
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// 当音量改变时&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;EventSystem&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Publish&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;VolumeChanged&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0.8f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-接收事件&#34;&gt;2. 接收事件
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;VolumeDisplay&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MonoBehaviour&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Text&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;_text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetComponent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;EventSystem&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Subscribe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;VolumeChanged&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OnVolumeChanged&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OnVolumeChanged&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kt&#34;&gt;float&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;volume&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;_text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;$&amp;#34;当前音量：{volume * 100}%&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;六编辑器工具快速配置和测试&#34;&gt;六、编辑器工具：快速配置和测试
&lt;/h2&gt;&lt;h3 id=&#34;1-打开工具&#34;&gt;1. 打开工具
&lt;/h3&gt;&lt;p&gt;点击菜单栏：&lt;code&gt;Tools/UI/Window Config Converter&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;2-保存窗口属性&#34;&gt;2. 保存窗口属性
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;将场景中的窗口拖入 &lt;code&gt;目标窗口&lt;/code&gt; 字段。&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;保存窗口属性到配置&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;3-应用配置&#34;&gt;3. 应用配置
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;选择配置文件。&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;应用配置到窗口&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;七常见问题解答&#34;&gt;七、常见问题解答
&lt;/h2&gt;&lt;h3 id=&#34;1-ui-组件无法交互&#34;&gt;1. UI 组件无法交互
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;检查点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;确保 &lt;code&gt;Canvas&lt;/code&gt; 的 &lt;code&gt;Render Mode&lt;/code&gt; 为 &lt;code&gt;Screen Space - Camera&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;确保 &lt;code&gt;EventSystem&lt;/code&gt; 组件存在。&lt;/li&gt;
&lt;li&gt;确保 &lt;code&gt;GraphicRaycaster&lt;/code&gt; 组件已启用。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-窗口未显示&#34;&gt;2. 窗口未显示
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;检查点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;确保配置文件路径正确：&lt;code&gt;Resources/UI/Configs/&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;确保窗口预制体包含 &lt;code&gt;BaseWindow&lt;/code&gt; 组件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-事件未触发&#34;&gt;3. 事件未触发
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;检查点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;确保事件名称拼写正确。&lt;/li&gt;
&lt;li&gt;确保接收端已订阅事件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;八总结&#34;&gt;八、总结
&lt;/h2&gt;&lt;p&gt;通过这套系统，你可以：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;快速创建窗口&lt;/strong&gt;：基于模板，减少重复工作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;灵活扩展功能&lt;/strong&gt;：通过配置文件动态添加组件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;解耦窗口逻辑&lt;/strong&gt;：通过事件系统实现模块间通信。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提升开发效率&lt;/strong&gt;：通过编辑器工具快速配置和测试。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你有任何问题或建议，欢迎在评论区留言！希望这套系统能为你的项目带来帮助。🚀&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;附：系统打包说明&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将以下文件夹打包为 &lt;code&gt;.unitypackage&lt;/code&gt;：
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Assets/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Scripts/UI/              # 核心脚本
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Resources/UI/            # 配置文件、预制体
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── Editor/                  # 编辑器工具
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;导入新项目后，按照本文步骤初始化即可。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Happy Coding!&lt;/strong&gt; 🎮&lt;/p&gt;
</description>
        </item>
        <item>
        <title>孟德尔の遗传学模拟程序</title>
        <link>https://SJTdreams.github.io/p/%E5%AD%9F%E5%BE%B7%E5%B0%94%E3%81%AE%E9%81%97%E4%BC%A0%E5%AD%A6%E6%A8%A1%E6%8B%9F%E7%A8%8B%E5%BA%8F/</link>
        <pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate>
        
        <guid>https://SJTdreams.github.io/p/%E5%AD%9F%E5%BE%B7%E5%B0%94%E3%81%AE%E9%81%97%E4%BC%A0%E5%AD%A6%E6%A8%A1%E6%8B%9F%E7%A8%8B%E5%BA%8F/</guid>
        <description>&lt;img src="https://SJTdreams.github.io/p/%E5%AD%9F%E5%BE%B7%E5%B0%94%E3%81%AE%E9%81%97%E4%BC%A0%E5%AD%A6%E6%A8%A1%E6%8B%9F%E7%A8%8B%E5%BA%8F/title.jpg" alt="Featured image of post 孟德尔の遗传学模拟程序" /&gt;&lt;ul&gt;
&lt;li&gt;
&lt;h1 id=&#34;遗传学模拟程序用户手册&#34;&gt;遗传学模拟程序用户手册
&lt;/h1&gt;&lt;p&gt;[TOC]&lt;/p&gt;
&lt;p&gt;项目下载链接:&lt;a class=&#34;link&#34; href=&#34;https://github.com/SJTdreams/GeneSim-Lab&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;[github]&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://wwts.lanzoub.com/iPadm2nv0jri&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;[蓝奏云]&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;-程序简介&#34;&gt;🌱 程序简介
&lt;/h2&gt;&lt;p&gt;这是一个用于模拟遗传规律的互动程序，可以帮助你：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;观察显性和隐性基因的遗传规律&lt;/li&gt;
&lt;li&gt;模拟不同基因组合的繁殖结果&lt;/li&gt;
&lt;li&gt;统计基因型和表型的分布比例&lt;/li&gt;
&lt;li&gt;理解孟德尔遗传定律的实际应用&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-基本概念速查&#34;&gt;🧬 基本概念速查
&lt;/h2&gt;&lt;h3 id=&#34;基因相关&#34;&gt;基因相关
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;显性基因&lt;/strong&gt;：用大写字母表示（如A），决定显性性状&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隐性基因&lt;/strong&gt;：用小写字母表示（如a），只有两个隐性基因组合时才表现性状&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基因型&lt;/strong&gt;：个体的基因组合（如AA/Aa/aa）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;表型&lt;/strong&gt;：实际表现出的性状（如高茎/矮茎）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;组别功能&#34;&gt;组别功能
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;实验容器&lt;/strong&gt;：每个组都是一个独立的实验环境&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据隔离&lt;/strong&gt;：不同组的实验数据互不影响&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模式切换&lt;/strong&gt;：支持随机交配和人工杂交两种模式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;历史记录&lt;/strong&gt;：自动保存各代繁殖数据&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-快速入门&#34;&gt;💻 快速入门
&lt;/h2&gt;&lt;h3 id=&#34;启动程序&#34;&gt;启动程序
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python main.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;出现 &lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt; 提示符表示启动成功&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;基础指令速查&#34;&gt;基础指令速查
&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;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;/help&lt;/td&gt;
          &lt;td&gt;查看帮助文档&lt;/td&gt;
          &lt;td&gt;/help&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;/add&lt;/td&gt;
          &lt;td&gt;添加新基因&lt;/td&gt;
          &lt;td&gt;/add A a 高茎 矮茎&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;/create&lt;/td&gt;
          &lt;td&gt;创建新组&lt;/td&gt;
          &lt;td&gt;/create 豌豆组&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;/random&lt;/td&gt;
          &lt;td&gt;随机生成个体&lt;/td&gt;
          &lt;td&gt;/random 豌豆组 10 2&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;/run&lt;/td&gt;
          &lt;td&gt;执行一代繁殖&lt;/td&gt;
          &lt;td&gt;/run 豌豆组&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;/show&lt;/td&gt;
          &lt;td&gt;查看统计数据&lt;/td&gt;
          &lt;td&gt;/show 豌豆组 -details&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;-详细使用指南&#34;&gt;📚 详细使用指南
&lt;/h2&gt;&lt;h3 id=&#34;第一步定义基因&#34;&gt;第一步：定义基因
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;显性符号&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;隐性符号&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;显性性状&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;隐性性状&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;示例&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add A a 高茎 矮茎
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add B b 圆粒 皱粒
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;💡 小贴士：基因符号必须为单个字母，显性用大写&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;第二步创建实验组&#34;&gt;第二步：创建实验组
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;组名&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;示例&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 实验一组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 对照组
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;第三步添加实验个体&#34;&gt;第三步：添加实验个体
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;方法1：手动添加&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;组名&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;基因型&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; add &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;数量&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;示例&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 实验一组 AA add &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 添加5个AA型个体&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;方法2：随机生成&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;组名&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;数量&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;基因长度&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;示例&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random 实验一组 &lt;span class=&#34;m&#34;&gt;20&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 生成20个双基因个体（如AaBb）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;第四步执行繁殖实验&#34;&gt;第四步：执行繁殖实验
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/run &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;组名&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;      &lt;span class=&#34;c1&#34;&gt;# 观察结果但不保存&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/write &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;组名&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;# 执行并保存结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/runs &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;次数&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;     &lt;span class=&#34;c1&#34;&gt;# 连续繁殖多代&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;示例流程&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 豌豆实验
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random 豌豆实验 &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 生成10个单基因个体&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show 豌豆实验        &lt;span class=&#34;c1&#34;&gt;# 查看初始分布&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/run 豌豆实验         &lt;span class=&#34;c1&#34;&gt;# 执行一代繁殖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;第五步查看实验结果&#34;&gt;第五步：查看实验结果
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;组名&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;          &lt;span class=&#34;c1&#34;&gt;# 基础统计&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;组名&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; -details &lt;span class=&#34;c1&#34;&gt;# 详细数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;输出示例&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=== 实验组 统计 ===
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;总个体数：50
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;基因型分布：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Aa: 25 (50.00%)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  AA: 15 (30.00%)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  aa: 10 (20.00%)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;表型分布：
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  (高茎,):
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    数量：40 占比：80.00%
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    基因型：Aa, AA
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;-实验模式说明&#34;&gt;🧪 实验模式说明
&lt;/h2&gt;&lt;h3 id=&#34;-随机交配模式&#34;&gt;🌐 随机交配模式
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;自然随机配对&lt;/li&gt;
&lt;li&gt;适合模拟自然种群&lt;/li&gt;
&lt;li&gt;使用指令：&lt;code&gt;/mode [组名] random&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;-人工杂交模式&#34;&gt;✂️ 人工杂交模式
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;可控配对组合&lt;/li&gt;
&lt;li&gt;适合特定基因型杂交实验&lt;/li&gt;
&lt;li&gt;使用指令：&lt;code&gt;/mode [组名] cross&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-学习案例豌豆实验&#34;&gt;💡 学习案例：豌豆实验
&lt;/h2&gt;&lt;h3 id=&#34;实验目标&#34;&gt;实验目标
&lt;/h3&gt;&lt;p&gt;观察高茎（AA/Aa）与矮茎（aa）豌豆的杂交结果&lt;/p&gt;
&lt;h3 id=&#34;操作步骤&#34;&gt;操作步骤
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;添加基因定义&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add A a 高茎 矮茎
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;创建实验组&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 豌豆实验
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加亲本&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 豌豆实验 AA add &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 10株高茎纯合体&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 豌豆实验 aa add &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 10株矮茎&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;设置杂交模式&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mode 豌豆实验 cross
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;执行杂交&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/run 豌豆实验
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;分析结果&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show 豌豆实验 -details
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;-load指令详解&#34;&gt;📥 LOAD指令详解
&lt;/h2&gt;&lt;h3 id=&#34;指令作用&#34;&gt;指令作用
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;/load [文件路径]&lt;/code&gt; 可以批量执行预先编写好的实验指令文件，适合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;保存常用实验方案&lt;/li&gt;
&lt;li&gt;快速重建复杂实验&lt;/li&gt;
&lt;li&gt;课堂演示重复实验&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;文件格式要求&#34;&gt;文件格式要求
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;使用普通文本文件（建议.txt扩展名）&lt;/li&gt;
&lt;li&gt;每行一条有效指令&lt;/li&gt;
&lt;li&gt;支持#号注释&lt;/li&gt;
&lt;li&gt;使用UTF-8编码&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;使用步骤&#34;&gt;使用步骤
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;用记事本创建指令文件&lt;/li&gt;
&lt;li&gt;每行写一个有效命令&lt;/li&gt;
&lt;li&gt;保存时选择UTF-8编码&lt;/li&gt;
&lt;li&gt;在程序中执行&lt;code&gt;/load 文件路径&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;-实例代码库&#34;&gt;📋 实例代码库
&lt;/h2&gt;&lt;h3 id=&#34;基础示例单基因实验&#34;&gt;基础示例：单基因实验
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 保存为 basic_exp.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 第一步：定义基因
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add A a 高茎 矮茎
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 第二步：创建实验组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 单基因实验
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 第三步：生成初始种群
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random 单基因实验 20 2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 第四步：设置杂交模式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mode 单基因实验 cross
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 第五步：执行三次繁殖
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/runs 3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 第六步：查看最终结果
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show 单基因实验 -details
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;进阶示例双基因自由组合&#34;&gt;进阶示例：双基因自由组合
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 保存为 two_genes.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 定义两个性状基因
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add A a 高茎 矮茎
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add B b 圆粒 皱粒
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 创建双基因实验组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 双基因实验
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 添加特定基因型亲本（AABB × aabb）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 双基因实验 AABB add 5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 双基因实验 aabb add 5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 设置杂交模式
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mode 双基因实验 cross
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 执行两代繁殖
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/runs 2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 保存最终结果
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/save 双基因结果
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;课堂演示脚本&#34;&gt;课堂演示脚本
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 保存为 class_demo.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 初始化设置
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add M m 正常 白化
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add C c 能尝味 不能尝味
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 创建对照组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 对照组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random 对照组 30 4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 创建实验组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 实验组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 实验组 MmCc add 10
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 实验组 mmcc add 10
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 批量执行5代繁殖
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mode 实验组 cross
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/runs 5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 对比两组结果
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show 对照组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show 实验组 -details
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;-load使用技巧&#34;&gt;🛠️ LOAD使用技巧
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;渐进式实验&lt;/strong&gt;：分阶段保存不同脚本&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;BASH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;load&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;01&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;_初始化基因&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;load&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;02&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;_创建对照组&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;load&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;03&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;_创建实验组&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;参数化实验&lt;/strong&gt;：修改数字快速生成不同规模实验&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 修改数量参数即可生成不同规模种群
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random 实验组 ${数量} 4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;错误处理&lt;/strong&gt;：遇到错误时会显示行号&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TEXT[行5] 执行: /add A a 高茎
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;!! 行5执行失败: 参数数量错误，需要4个参数
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;快速重建&lt;/strong&gt;：保存成功实验配置&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 保存当前状态
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/save 成功案例
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 下次使用时
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/read 成功案例
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;-实战案例包&#34;&gt;💼 实战案例包
&lt;/h2&gt;&lt;h3 id=&#34;案例1三代显性追踪&#34;&gt;案例1：三代显性追踪
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 保存为 three_generations.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add H h 正常 亨廷顿症
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 家族追踪
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random 家族追踪 10 2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show 家族追踪
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/runs 3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/show 家族追踪 -details
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;案例2多性状组合实验&#34;&gt;案例2：多性状组合实验
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 保存为 multi_traits.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add T t 卷舌 平舌
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add E e 双眼皮 单眼皮
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add F f 有酒窝 无酒窝
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 三性状实验
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/random 三性状实验 50 6
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/mode 三性状实验 random
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/runs 5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/write 三性状实验
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;案例3异常情况测试&#34;&gt;案例3：异常情况测试
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;BASH# 保存为 error_test.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# 测试各种错误情况
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/add X y 显性 隐性 # 应该报错（显隐基因相同）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/create 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/read 不存在的组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/change 测试组 AAA add 10
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;-使用注意事项&#34;&gt;📌 使用注意事项
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;文件路径建议使用英文命名&lt;/li&gt;
&lt;li&gt;复杂实验建议每10行添加注释&lt;/li&gt;
&lt;li&gt;遇到编码问题可使用Notepad++保存为UTF-8格式&lt;/li&gt;
&lt;li&gt;重要实验前先用小数据量测试脚本&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;教学建议&lt;/strong&gt;：可让学生先手动操作理解流程，再用LOAD指令进行大规模实验对比，加深对遗传规律的理解。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;-常见问题解答&#34;&gt;❓ 常见问题解答
&lt;/h2&gt;&lt;h3 id=&#34;q1为什么提示基因长度不符&#34;&gt;Q1：为什么提示&amp;quot;基因长度不符&amp;quot;？
&lt;/h3&gt;&lt;p&gt;A：同一实验组的所有个体必须具有相同的基因组合长度，添加新个体时请保持与现有个体相同的基因位数&lt;/p&gt;
&lt;h3 id=&#34;q2如何比较不同代的实验结果&#34;&gt;Q2：如何比较不同代的实验结果？
&lt;/h3&gt;&lt;p&gt;A：可以为每代创建不同组（如F1代、F2代），使用&lt;code&gt;/list&lt;/code&gt;指令查看各组数据&lt;/p&gt;
&lt;h3 id=&#34;q3为什么隐性性状没有出现&#34;&gt;Q3：为什么隐性性状没有出现？
&lt;/h3&gt;&lt;p&gt;A：检查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;是否正确定义隐性性状&lt;/li&gt;
&lt;li&gt;实验个体是否包含隐性基因&lt;/li&gt;
&lt;li&gt;繁殖代数是否足够&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;q4如何保存实验结果&#34;&gt;Q4：如何保存实验结果？
&lt;/h3&gt;&lt;p&gt;A：程序运行期间数据保存在内存中，关闭前可以使用&lt;code&gt;/save&lt;/code&gt;指令保存组状态&lt;/p&gt;
&lt;h2 id=&#34;-进阶技巧&#34;&gt;🚀 进阶技巧
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;多基因实验&lt;/strong&gt;：添加多个基因定义（如同时研究茎高和种子形状）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;历史回溯&lt;/strong&gt;：通过创建多个组保存不同阶段的实验数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;批量操作&lt;/strong&gt;：使用&lt;code&gt;/load&lt;/code&gt;指令从文件批量执行命令&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;性状组合&lt;/strong&gt;：在详细统计模式查看多基因性状组合&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;-遗传规律验证&#34;&gt;📊 遗传规律验证
&lt;/h2&gt;&lt;p&gt;通过本程序可以验证：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分离定律（子一代性状分离比）&lt;/li&gt;
&lt;li&gt;自由组合定律（多对性状组合）&lt;/li&gt;
&lt;li&gt;显隐性关系&lt;/li&gt;
&lt;li&gt;基因型与表型对应关系&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;📌 &lt;strong&gt;提示&lt;/strong&gt;：开始实验前建议先用&lt;code&gt;/help&lt;/code&gt;查看完整指令列表，遇到问题可尝试输入&lt;code&gt;/help [指令名]&lt;/code&gt;查看具体帮助&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Github使用日志</title>
        <link>https://SJTdreams.github.io/p/github%E4%BD%BF%E7%94%A8%E6%97%A5%E5%BF%97/</link>
        <pubDate>Thu, 02 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://SJTdreams.github.io/p/github%E4%BD%BF%E7%94%A8%E6%97%A5%E5%BF%97/</guid>
        <description>&lt;img src="https://SJTdreams.github.io/p/github%E4%BD%BF%E7%94%A8%E6%97%A5%E5%BF%97/title.png" alt="Featured image of post Github使用日志" /&gt;&lt;h1 id=&#34;github使用攻略&#34;&gt;Github使用攻略
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;在部署博客的过程中由于对github缺乏使用经验，导致了很多问题。于是决定在现在完成后记录一下github的使用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;前排提示&lt;/strong&gt;：&lt;em&gt;&lt;strong&gt;如果你是一个萌新，建议直接看&lt;/strong&gt;&lt;/em&gt;&lt;code&gt;具体工作流示范（从&lt;/code&gt;0&lt;code&gt;开始）&lt;/code&gt;&lt;em&gt;&lt;strong&gt;部分！&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;[TOC]&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2020年GitHub的日志数达到了8.6亿条，活跃代码仓库达到了5,421万个，活跃开发者数达到了1,454万人，拥有超过3,100万开发人员和9,600多万个存储库。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;github和git的具体概念&#34;&gt;Github和Git的具体概念
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;首先，github和git是两个不同的概念。GitHub 本身是一个基于web的服务平台，其通过提供git仓库的托管进行服务。而git则是开源的&lt;a class=&#34;link&#34; href=&#34;https://baike.baidu.com/item/%e5%88%86%e5%b8%83%e5%bc%8f/19276232?fromModule=lemma_inlink&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;分布式&lt;/a&gt;版本控制系统，两者绝对不能混为一谈。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;git并不是github独有的。包括&lt;strong&gt;Bitbucket&lt;/strong&gt;、&lt;strong&gt;SourceForge&lt;/strong&gt;、&lt;strong&gt;Gogs&lt;/strong&gt;、&lt;strong&gt;Gitbucket&lt;/strong&gt;、&lt;strong&gt;GitLab&lt;/strong&gt;、&lt;strong&gt;Gitee&lt;/strong&gt;、&lt;strong&gt;Azure DevOps&lt;/strong&gt;、&lt;strong&gt;Gitea&lt;/strong&gt;在内的多个平台使用的都是git。&lt;/p&gt;
&lt;h3 id=&#34;git的具体概念&#34;&gt;git的具体概念
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Git 是一个开源的分布式版本控制系统，用于敏捷高效地处理任何或小或大的项目。&lt;/p&gt;
&lt;p&gt;Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。&lt;/p&gt;
&lt;p&gt;Git 与常用的版本控制工具 CVS, Subversion 等不同，它采用了分布式版本库的方式，不必服务器端软件支持。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;对象存储&lt;/strong&gt;：Git使用内容寻址文件系统来存储内容。每个文件和目录都以对象的形式存储，并通过SHA-1哈希值进行索引。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;分支管理&lt;/strong&gt;：在Git中，分支是一个引用（轻量级的分支）或是一个分支对象（重量级的分支）。分支切换实际上是改变当前HEAD指针的位置。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;索引（Index）&lt;/strong&gt;：Git的索引是一个准备区，用于暂存即将提交的文件变更。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;冲突解决&lt;/strong&gt;：当两个分支有冲突时，Git会标记出冲突的文件，需要手动解决冲突后才能进行合并。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;标签（Tag）&lt;/strong&gt;：用于标记特定的提交，通常用于版本发布。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;仓库（Repository）&lt;/strong&gt;：Git用来保存项目文件和版本历史的数据库。每个项目都有一个Git仓库。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;提交（Commit）&lt;/strong&gt;：项目文件的一个快照，包括文件的内容和元数据（如作者、日期、提交信息）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;分支（Branch）&lt;/strong&gt;：指向特定提交的可移动的指针，用于隔离开发流程的不同部分。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;合并（Merge）&lt;/strong&gt;：将两个或多个不同的开发历史合并在一起。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;克隆（Clone）&lt;/strong&gt;：创建一个仓库的副本，包括所有文件和提交历史。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;远程仓库（Remote Repository）&lt;/strong&gt;：托管在服务器上的仓库，可以是GitHub、GitLab等。&lt;/p&gt;
&lt;h3 id=&#34;github的具体概念&#34;&gt;github的具体概念
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;GitHub是一个面向&lt;a class=&#34;link&#34; href=&#34;https://baike.baidu.com/item/%e5%bc%80%e6%ba%90/20720669?fromModule=lemma_inlink&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;开源&lt;/a&gt;及私有软件项目的托管平台，因为只支持Git作为唯一的版本库格式进行托管，故名GitHub。GitHub拥有1亿以上的开发人员，400万以上组织机构和3.3亿以上资料库。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;代码托管&lt;/strong&gt;：GitHub允许用户托管Git仓库，并提供了一个图形界面来浏览代码、提交历史、分支和标签。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;协作工具&lt;/strong&gt;：GitHub提供了issues（问题跟踪系统）、pull requests（代码审查和合并请求）、wikis（项目文档）和项目看板等工具，以支持团队协作。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;社交功能&lt;/strong&gt;：GitHub有关注（following）、星标（starring）、观察（watching）等社交功能，允许用户跟踪项目和开发者的活动。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;集成和自动化&lt;/strong&gt;：GitHub提供了API和Webhooks，允许开发者集成外部服务和自动化工作流程。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;代码审查和合并&lt;/strong&gt;：通过pull requests，GitHub支持代码审查和讨论，确保代码质量，并简化合并流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;github的使用&#34;&gt;Github的使用
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;GitHub允许你创建一个远程库。需要通过git来将本地的库同步到github中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Github允许你提交一个&lt;strong&gt;SSH&lt;/strong&gt;密钥到账号。SSH允许你无需账号密码来同步文件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Github包含一个&lt;strong&gt;Issues&lt;/strong&gt;，用于追踪项目中的错误和功能请求。可以在仓库的页面上找到New issue，填写相关信息后提交。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Github允许你通过&lt;strong&gt;Pull Requests&lt;/strong&gt;来请求将某个分支的变更合并到主分支，便于代码审查。在仓库页面，点击&amp;quot;Pull requests&amp;quot;，然后点击&amp;quot;New pull request&amp;quot;，选择要合并的分支，添加更改说明后提交。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Github包含一个&lt;strong&gt;Wikis&lt;/strong&gt;，可以在仓库中托管项目文档。在仓库页面，点击&amp;quot;Wiki&amp;quot;标签，然后点击&amp;quot;Add or edit pages&amp;quot;，创建或编辑文档页面。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Github包含&lt;strong&gt;GitHub Actions&lt;/strong&gt;可以实现自动化部署和持续集成（CI/CD）。例如在同步仓库时自动更新readme等操作。若要使用，则需在仓库的&lt;code&gt;.github/workflows&lt;/code&gt;目录下创建一个YAML文件，定义工作流程和触发条件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Github还包含&lt;strong&gt;Stars&lt;/strong&gt;（点赞/关注）、&lt;strong&gt;Forks&lt;/strong&gt;（克隆）、&lt;strong&gt;Watching&lt;/strong&gt;（订阅）等内容。这是一种用户间的互动。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Github可以创建组织，方便同步文件。登录GitHub账户，点击右上角的&amp;quot;+&amp;ldquo;号，选择&amp;quot;New organization&amp;rdquo;，填写组织信息后创建。在组织的页面，点击&amp;quot;Teams&amp;quot;，然后点击&amp;quot;New team&amp;quot;，设置团队名称和成员。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;git的使用&#34;&gt;Git的使用
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;git的本地仓库包含三个部分：其一是工作目录，其保存着实际的文件。其二是暂存区，类似于缓存，保存临时改动。其三是HEAD区，指向最后一次提交的结果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;：初始化一个git仓库。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git clone path&lt;/code&gt;：克隆一个本地仓库。把&lt;strong&gt;path&lt;/strong&gt;换成具体路径。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git clone [url]&lt;/code&gt;：克隆一个远程仓库。包含https克隆和SSH克隆。https的链接通常类似于这样：&lt;u&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/username/repository.git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/username/repository.git&lt;/a&gt;&lt;/u&gt;。SSH的链接通常类似于这样：&lt;u&gt;git clone &lt;a class=&#34;link&#34; href=&#34;mailto:git@github.com&#34; &gt;git@github.com&lt;/a&gt;:username/repository.git&lt;/u&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git add &amp;lt;filename&amp;gt;&lt;/code&gt;：添加文件到暂存区。如果filename为**&lt;code&gt;.&lt;/code&gt;**（就是一个点）就是指当前目录下的所有文件。文件名不添加路径则是当前目录下的文件。当选择的是文件夹会递归的添加其下的所有文件。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git add -u&lt;/code&gt;：这个命令只添加已经跟踪的文件（即之前已经添加到Git仓库的文件），不包括新文件。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git add -A&lt;/code&gt; / &lt;code&gt;git add --all&lt;/code&gt;：这些命令添加所有变化的文件和新文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git commit -m &amp;quot;代码提交信息&amp;quot;&lt;/code&gt;：将改动提交到HEAD。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git push origin master&lt;/code&gt;：将这些改动推送到远端仓库。其中，&lt;strong&gt;origin&lt;/strong&gt;是远程仓库的默认名称，当你克隆一个远程仓库时，Git 自动将远程仓库的引用设置为 &lt;code&gt;origin&lt;/code&gt;。这个名称是可替的。master是提交分支名，可以自行更改。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git remote -v&lt;/code&gt;：查看远程仓库的URL，&lt;code&gt;origin&lt;/code&gt; 会显示在列表中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git remote add new_origin &amp;lt;repository_url&amp;gt;&lt;/code&gt;：添加一个新的远程仓库，命名为&lt;strong&gt;new_origin&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;master&lt;/strong&gt;是git的默认分支。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git checkout feature_x&lt;/code&gt;：切换到某个分支。&lt;strong&gt;feature_x&lt;/strong&gt;是该分支的名称。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git checkout -b feature_x&lt;/code&gt;：创建并切换到某个分支，&lt;strong&gt;feature_x&lt;/strong&gt;是该分支的名称。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git branch -d feature_x&lt;/code&gt;：删除某个分支，&lt;strong&gt;feature_x&lt;/strong&gt;是该分支的名称。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git push origin &amp;lt;branch&amp;gt;&lt;/code&gt;：推送这个分支。没有推送的分支在远程上是不可见的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git pull [remote] [branch]&lt;/code&gt;:从远程仓库拉取代码变更，并尝试将这些变更自动合并到当前本地分支。&lt;code&gt;[remote]&lt;/code&gt;：这是远程仓库的名称，默认是 &lt;code&gt;origin&lt;/code&gt;。&lt;code&gt;branch&lt;/code&gt;：这是远程仓库中你想要拉取的分支名称。如果你不指定 &lt;code&gt;[remote]&lt;/code&gt; 和 &lt;code&gt;branch&lt;/code&gt;，Git 会默认拉取 &lt;code&gt;origin&lt;/code&gt; 远程仓库中与当前本地分支关联的分支的变更。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git merge &amp;lt;branch&amp;gt;&lt;/code&gt;：合并一个分支到当前分支。&lt;strong&gt;branch&lt;/strong&gt;是该分支的名称（&amp;lt;&amp;gt;是不要的）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git diff &amp;lt;source_branch&amp;gt; &amp;lt;target_branch&amp;gt;&lt;/code&gt;：预览两个分支的差异。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git log&lt;/code&gt;：获得提交ID。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git tag 1.0.0 id&lt;/code&gt;：创建一个叫做 &lt;em&gt;1.0.0&lt;/em&gt; 的标签。id指提交 ID 的前 10 位字符。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git checkout -- &amp;lt;filename&amp;gt;&lt;/code&gt;：使用 HEAD 中的最新内容替换掉你的工作目录中的文件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git fetch [remote]&lt;/code&gt;：从远程仓库获取数据，并下载远程分支的更新和提交，但不会自动合并这些更改到你的本地分支。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git reset [--hard] [&amp;lt;commit&amp;gt;]&lt;/code&gt;：重置当前HEAD和索引（暂存区）。&lt;code&gt;[--hard]&lt;/code&gt;：这是一个可选的选项，表示重置时连同工作目录一起重置，即放弃所有本地未提交的更改。&lt;code&gt;[&amp;lt;commit&amp;gt;]&lt;/code&gt;：这是一个占位符，表示你想要重置到的特定的提交（commit）。可以是一个分支名、标签或者提交的哈希值。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;gitk&lt;/code&gt;：图形化git。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git config color.ui true/false&lt;/code&gt;开启/关闭彩色输出。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git config format.pretty oneline&lt;/code&gt;：显示历史记录时，每个提交的信息只显示一行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git add -i&lt;/code&gt;：交互式添加文件到暂存区。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3 id=&#34;具体语法实例&#34;&gt;具体语法实例：
&lt;/h3&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;58
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;59
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;60
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;61
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;62
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;63
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;64
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;65
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;66
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;67
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;68
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 初始化一个Git仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 克隆一个远程仓库到本地&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/username/repository.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 添加文件到暂存区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add index.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 添加所有变化的文件和新文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add -A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 添加已经跟踪的文件（不包括新文件）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add -u
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 提交暂存区的更改到本地仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;Add index.md with Github usage log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查看远程仓库的URL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 添加一个新的远程仓库引用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote add origin https://github.com/username/repository.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 推送本地仓库的更改到远程仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push -u origin master
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 从远程仓库拉取代码变更，并合并到当前本地分支&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git pull origin master
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 合并远程分支的更改到当前分支&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git merge origin/master
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 显示两个分支的差异&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git diff master feature_x
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查看提交历史&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git log
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 创建一个标签&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git tag 1.0.0 &amp;lt;commit_id&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 检出标签对应的提交&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git checkout 1.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 检出HEAD中的最新内容替换工作目录中的文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git checkout -- index.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 从远程仓库获取数据，但不自动合并&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git fetch origin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 重置当前HEAD和索引（暂存区）到指定的提交&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git reset --hard &amp;lt;commit_id&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 重置当前HEAD和索引（暂存区）到远程分支的状态&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git reset --hard origin/master
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 打开图形化Git工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gitk
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 开启/关闭彩色输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global color.ui &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 显示历史记录时，每个提交的信息只显示一行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global format.pretty oneline
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 交互式添加文件到暂存区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add -i
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;身份认证&#34;&gt;身份认证
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;身份认证主要涉及与远程仓库的交互，例如推送（push）和拉取（pull）代码。在进行这些操作时，会进行身份认证。&lt;/li&gt;
&lt;li&gt;在“Settings”页面，选择“Developer settings”。&lt;/li&gt;
&lt;li&gt;点击“Personal access tokens”，然后点击“Generate new token”。&lt;/li&gt;
&lt;li&gt;选择需要的权限范围，生成个人访问令牌。&lt;/li&gt;
&lt;li&gt;复制生成的 PAT 并妥善保管，因为之后无法再次查看完整的 PAT。
&lt;ul&gt;
&lt;li&gt;生成 PAT 是为了在使用 HTTPS 认证时，可以使用 PAT 代替密码进行身份验证，提高安全性，避免在代码操作过程中频繁输入密码，同时可以为不同的用途生成不同的令牌，便于管理和权限控制。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;配置 Git 用户信息
&lt;ul&gt;
&lt;li&gt;在本地计算机上打开终端或命令行工具.&lt;/li&gt;
&lt;li&gt;使用命令 &lt;code&gt;git config --global user.name &amp;quot;Your Name&amp;quot;&lt;/code&gt; 设置全局用户名.&lt;/li&gt;
&lt;li&gt;使用命令 &lt;code&gt;git config --global user.email &amp;quot;your_email@example.com&amp;quot;&lt;/code&gt; 设置全局用户邮箱.&lt;/li&gt;
&lt;li&gt;
&lt;!--配置 Git 用户信息是为了在提交代码时，能够记录提交者的真实身份信息，方便项目管理和追踪代码变更的来源.--&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;生成 SSH 密钥对（使用 SSH 认证）
&lt;ul&gt;
&lt;li&gt;生成SSH可以避免每一次登录都要输入账号密码&lt;/li&gt;
&lt;li&gt;打开终端，输入命令 &lt;code&gt;ssh-keygen -t rsa -b 4096 -C &amp;quot;your_email@example.com&amp;quot;&lt;/code&gt; 生成 SSH 密钥对.&lt;/li&gt;
&lt;li&gt;按照提示操作，输入文件保存路径和密码（可选）.&lt;/li&gt;
&lt;li&gt;生成的公钥文件通常位于 &lt;code&gt;~/.ssh/id_rsa.pub&lt;/code&gt;，私钥文件位于 &lt;code&gt;~/.ssh/id_rsa&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;添加 SSH 公钥到 GitHub
&lt;ul&gt;
&lt;li&gt;如果不添加，GitHub 无法识别本地计算机的身份，使用 SSH 认证时会出现权限拒绝的错误。&lt;/li&gt;
&lt;li&gt;登录 GitHub 账户，点击右上角的头像，选择“Settings”.&lt;/li&gt;
&lt;li&gt;在左侧菜单选择“SSH and GPG keys”，点击“New SSH key”.&lt;/li&gt;
&lt;li&gt;输入 SSH 密钥的标题，将公钥内容粘贴到“Key”框中，点击“Add SSH key”.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;克隆远程仓库
&lt;ul&gt;
&lt;li&gt;使用 SSH URL 克隆远程仓库，例如 &lt;code&gt;git clone git@github.com:username/repository.git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;在首次克隆时，可能会提示输入 SSH 密钥的密码（如果设置了密码）.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;推送和拉取代码（使用 SSH 认证）
&lt;ul&gt;
&lt;li&gt;在本地仓库中进行代码更改后，使用 &lt;code&gt;git push&lt;/code&gt; 推送代码到远程仓库.&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;git pull&lt;/code&gt; 从远程仓库拉取代码更新.&lt;/li&gt;
&lt;li&gt;由于使用了 SSH 密钥认证，不需要输入用户名和密码.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;使用 HTTPS 认证（不推荐）
&lt;ul&gt;
&lt;li&gt;每次操作都需要输入用户名和密码，增加了操作的复杂性，且在安全性上可能不如 SSH 认证。&lt;/li&gt;
&lt;li&gt;使用 HTTPS URL 克隆远程仓库，例如 &lt;code&gt;git clone https://github.com/username/repository.git&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;在推送和拉取代码时，输入用户名和密码（或 PAT）进行身份验证.&lt;/li&gt;
&lt;li&gt;如果使用 PAT，可以在 Git 命令中输入 &lt;code&gt;username&lt;/code&gt; 和 &lt;code&gt;PAT&lt;/code&gt; 作为凭证.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;具体工作流示范从0开始&#34;&gt;具体工作流示范（从&lt;code&gt;0&lt;/code&gt;开始）
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;h3 id=&#34;一注册及相关准备工作&#34;&gt;一、注册及相关准备工作
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;在具体使用Github前，需要先注册一个账号。在国内由于“&lt;em&gt;多方面&lt;/em&gt;”原因可能比较难以登上。如果遇到了无法登上的问题，可以考虑更换浏览器或者使用&lt;a class=&#34;link&#34; href=&#34;https://steampp.net/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Watt Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;访问&lt;a class=&#34;link&#34; href=&#34;https://github.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub官网&lt;/a&gt;，点击右上角的&lt;a class=&#34;link&#34; href=&#34;https://github.com/signup?ref_cta=Sign&amp;#43;up&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Sign up&lt;/strong&gt;&lt;/a&gt;按钮，按照提示填写信息（&lt;em&gt;邮箱，密码，用户名&lt;/em&gt;）创建一个新的GitHub账户。&lt;/li&gt;
&lt;li&gt;登录到GitHub账户后，点击右上角的**+&lt;strong&gt;按钮，选择&lt;/strong&gt;New repository**。&lt;/li&gt;
&lt;li&gt;在创建仓库界面，要注意的选项有以下几项，根据自己的需求来决定：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Repository name&lt;/strong&gt;（必填）：这个项会决定仓库的名称。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Public/Private&lt;/strong&gt;（默认public）：选择可以决定仓库是否公开，也就是别人能不能看到。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add a README file&lt;/strong&gt;（可选）：可以在仓库中加入一个介绍的文本，方便写项目介绍、更新日志之类的东西。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add .gitignore&lt;/strong&gt;（可选）：创建一个上传选择文件，可以在仓库上传时选择性的忽略一部分文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choose a license&lt;/strong&gt;（可选）：可以决定别人要怎么对待你这个项目。简单来说可以从以下几个选择一个，具体的可以查&lt;a class=&#34;link&#34; href=&#34;http://choosealicense.online/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Github许可证使用手册中文版&lt;/a&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MIT许可证&lt;/strong&gt;：最宽松，只要保留版权和许可声明，就可以随意使用、修改和分发代码，适合希望代码被广泛传播的个人或小项目。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apache许可证&lt;/strong&gt;：也很宽松，和MIT类似，但多了专利保护条款，适合大型项目，尤其是涉及多个开发者和组织合作的项目。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPL许可证&lt;/strong&gt;：要求修改后的代码也必须开源，适合希望保持项目开源精神，防止代码被闭源的项目。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BSD许可证&lt;/strong&gt;：比较宽松，允许自由使用和修改代码，但需保留版权声明，适合希望代码能被广泛应用，包括商业用途的项目。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3 id=&#34;二本地git下载和配置&#34;&gt;二、本地git下载和配置
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;通过链接简单安装git到电脑上：&lt;a class=&#34;link&#34; href=&#34;https://git-scm.com/downloads/win&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;git windows版下载地址&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;配置你的用户名和邮箱，这个会决定你提交更改时显示的用户信息。输入&lt;code&gt;win + R&lt;/code&gt;,输入&lt;code&gt;cmd&lt;/code&gt;并打开。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在其中输入以下代码。注意将&lt;strong&gt;Your Name&lt;/strong&gt;换成你自己的用户名，&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;mailto:your_email@example.com&#34; &gt;your_email@example.com&lt;/a&gt;&lt;/strong&gt;换成你自己的邮箱地址：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.name &lt;span class=&#34;s2&#34;&gt;&amp;#34;Your Name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.email &lt;span class=&#34;s2&#34;&gt;&amp;#34;your_email@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3 id=&#34;三身份认证&#34;&gt;三、身份认证
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;上传代码到仓库时需要身份认证。如果每一次都输入账号密码就很麻烦，所以采用&lt;strong&gt;SSH密钥认证&lt;/strong&gt;来跳过这个步骤。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在&lt;code&gt;cmd&lt;/code&gt;中输入以下片段。将&lt;code&gt;your_email@example.com&lt;/code&gt;替换成你在GitHub上注册的邮箱地址：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh-keygen -t rsa -b &lt;span class=&#34;m&#34;&gt;4096&lt;/span&gt; -C “your_email@example.com”
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;登录GitHub，点击右上角头像，选择&lt;strong&gt;Settings&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在左侧菜单中选择&lt;strong&gt;SSH and GPG keys&lt;/strong&gt;，点击&lt;strong&gt;New SSH key&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在&lt;strong&gt;Title&lt;/strong&gt;字段中，为SSH密钥添加名字；在&lt;strong&gt;Key&lt;/strong&gt;字段中，将&lt;code&gt;id_rsa.pub&lt;/code&gt;文件的内容复制粘贴进去，然后点击&lt;strong&gt;Add SSH key&lt;/strong&gt;确认添加。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;继续在&lt;code&gt;cmd&lt;/code&gt;中输入，将&lt;strong&gt;Your Name&lt;/strong&gt;改为你的用户名，将&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;mailto:your_email@example.com&#34; &gt;your_email@example.com&lt;/a&gt;&lt;/strong&gt;改为你的邮箱：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.name &lt;span class=&#34;s2&#34;&gt;&amp;#34;Your Name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.email &lt;span class=&#34;s2&#34;&gt;&amp;#34;your_email@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3 id=&#34;四下载仓库和拉取分支更改到本地&#34;&gt;四、下载仓库和拉取分支（更改）到本地
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;打开你要找的仓库，找到界面中的***&lt;code&gt;&amp;lt; &amp;gt; Code&lt;/code&gt;***选项，打开复制链接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;打开&lt;code&gt;cmd&lt;/code&gt;，输入以下代码，这会将项目下载到指定目录下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; &amp;lt;你要的具体路径&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone &amp;lt;刚才复制的链接&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;拉取分支通过以下操作。如果你不知道分支是什么，可以理解为延申出去的不同方面的更改：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#打开到指定目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; &amp;lt;仓库路径&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#切换到你要的指定分支&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git checkout main
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#拉取指定分支&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git pull origin &amp;lt;分支名称&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#拉取当前分支的最新内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git pull
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3 id=&#34;五-上传文件到仓库&#34;&gt;五、 上传文件到仓库
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;首次上传时，打开&lt;code&gt;cmd&lt;/code&gt;，执行以下操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; &amp;lt;你要上传的文件路径&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#初始化git，这会创建一个.git隐藏目录，用于存储Git的元数据和对象数据库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#创建一个分支，用于提交，并切换到这个分支上&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git checkout -b &amp;lt;分支名称&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#选择你要上传到的仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote add origin &amp;lt;仓库链接&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#决定要上传的文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add &amp;lt;fileName&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#如果你希望上传当前目录所有文件，用这个&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#先提交到本地仓库上&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;提交信息&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#发送分支到目标仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push -u origin new-branch-name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在要更新时，可以简单的这么做：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git add .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;Update&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Git 作为一个开源的分布式版本控制系统，以其高效和灵活性被广泛应用于各种项目中。而 GitHub，作为一个基于 Web 的服务平台，提供了 Git 仓库托管和丰富的协作工具，极大地方便了开发者之间的代码共享和项目管理。&lt;/li&gt;
&lt;li&gt;本篇涉及了了 Git 的核心特性，和基础语法，大概阐释了涉及到的概念。可以作为我自身的查档用，也有一定的参考价值。&lt;/li&gt;
&lt;li&gt;GitHub 的主要语法和操作实际上基于 Git，而 GitHub 则作为远程仓库的角色，使得代码的远程托管和管理变得更加便捷。希望本文能帮助您更好地理解和使用 Git 和 GitHub，提高您的工作效率，并在开源社区中发挥更大的作用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;相关资料&#34;&gt;相关资料
&lt;/h2&gt;&lt;p&gt;* &lt;a class=&#34;link&#34; href=&#34;https://www.runoob.com/manual/git-guide/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;git - 简明指南&lt;/a&gt;
* &lt;a class=&#34;link&#34; href=&#34;https://www.runoob.com/git/git-tutorial.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git 教程|菜鸟编程&lt;/a&gt;
* &lt;a class=&#34;link&#34; href=&#34;https://baike.baidu.com/item/github/10145341&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Github-百度百科&lt;/a&gt;
* &lt;a class=&#34;link&#34; href=&#34;https://baike.baidu.com/item/GIT/12647237&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git-百度百科&lt;/a&gt;
* &lt;a class=&#34;link&#34; href=&#34;https://git-scm.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git官方文档&lt;/a&gt;
* &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/Git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git维基百科&lt;/a&gt;
* &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/GitHub&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Github维基百科&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
