Browse Source

归档

master
wsk 22 hours ago
parent
commit
a402fa2b74
69 changed files with 319 additions and 64 deletions
  1. +54
    -33
      IAR/IAR.md
  2. +29
    -5
      SourceInSight/SourceInSight.md
  3. +221
    -25
      SourceTree/Source Tree.md
  4. BIN
      SourceTree/pictures/image-20250716161207295.png
  5. BIN
      SourceTree/pictures/image-20250716161240555.png
  6. BIN
      SourceTree/pictures/image-20250716161315531.png
  7. BIN
      SourceTree/pictures/image-20250716161502965.png
  8. BIN
      SourceTree/pictures/image-20250716161611739.png
  9. BIN
      SourceTree/pictures/image-20250716161845432.png
  10. BIN
      SourceTree/pictures/image-20250716162208546.png
  11. BIN
      SourceTree/pictures/image-20250716162311987.png
  12. BIN
      SourceTree/pictures/image-20250716162354532.png
  13. BIN
      SourceTree/pictures/image-20250716162610646.png
  14. BIN
      SourceTree/pictures/image-20250716162825962.png
  15. BIN
      SourceTree/pictures/image-20250716162936996.png
  16. BIN
      SourceTree/pictures/image-20250716163014791.png
  17. BIN
      SourceTree/pictures/image-20250716163650811.png
  18. BIN
      SourceTree/pictures/image-20250716163725582.png
  19. BIN
      SourceTree/pictures/image-20250716163940888.png
  20. BIN
      SourceTree/pictures/image-20250716164007116.png
  21. BIN
      SourceTree/pictures/image-20250716164205932.png
  22. BIN
      SourceTree/pictures/image-20250716164339076.png
  23. BIN
      SourceTree/pictures/image-20250716164356055.png
  24. BIN
      SourceTree/pictures/image-20250716164542292.png
  25. BIN
      SourceTree/pictures/image-20250716164601226.png
  26. BIN
      SourceTree/pictures/image-20250716164703990.png
  27. BIN
      SourceTree/pictures/image-20250716164730426.png
  28. BIN
      SourceTree/pictures/image-20250716164820220.png
  29. BIN
      SourceTree/pictures/image-20250716164948009.png
  30. BIN
      SourceTree/pictures/image-20250716165008026.png
  31. BIN
      SourceTree/pictures/image-20250716165155337.png
  32. BIN
      SourceTree/pictures/image-20250716165220392.png
  33. BIN
      SourceTree/pictures/image-20250716165347055.png
  34. BIN
      SourceTree/pictures/image-20250716165412325.png
  35. BIN
      SourceTree/pictures/image-20250716165606528.png
  36. BIN
      SourceTree/pictures/image-20250716165635842.png
  37. BIN
      SourceTree/pictures/image-20250716165650392.png
  38. BIN
      SourceTree/pictures/image-20250716165912588.png
  39. BIN
      SourceTree/pictures/image-20250716165954714.png
  40. BIN
      SourceTree/pictures/image-20250716170026082.png
  41. BIN
      SourceTree/pictures/image-20250716170409161.png
  42. BIN
      SourceTree/pictures/image-20250716170518530.png
  43. BIN
      SourceTree/pictures/image-20250716170613121.png
  44. BIN
      SourceTree/pictures/image-20250716170634869.png
  45. BIN
      SourceTree/pictures/image-20250716170731012.png
  46. BIN
      SourceTree/pictures/image-20250716173340425.png
  47. BIN
      SourceTree/pictures/image-20250716173351121.png
  48. BIN
      SourceTree/pictures/image-20250716173413156.png
  49. BIN
      SourceTree/pictures/image-20250716173444722.png
  50. BIN
      SourceTree/pictures/image-20250716173539786.png
  51. BIN
      SourceTree/pictures/image-20250716173551578.png
  52. BIN
      SourceTree/pictures/image-20250716173633204.png
  53. BIN
      SourceTree/pictures/image-20250716173721782.png
  54. BIN
      SourceTree/pictures/image-20250716174143186.png
  55. BIN
      SourceTree/pictures/image-20250716174201453.png
  56. BIN
      SourceTree/pictures/image-20250716174218591.png
  57. BIN
      SourceTree/pictures/image-20250716174627685.png
  58. BIN
      SourceTree/pictures/image-20250716174710474.png
  59. BIN
      SourceTree/pictures/image-20250716174746235.png
  60. BIN
      SourceTree/pictures/image-20250716174814521.png
  61. BIN
      SourceTree/pictures/image-20250716175432378.png
  62. BIN
      SourceTree/pictures/image-20250716175501064.png
  63. BIN
      SourceTree/pictures/image-20250716175527294.png
  64. BIN
      SourceTree/pictures/image-20250716175559009.png
  65. +15
    -1
      VisualStudio/VisualStudio.md
  66. BIN
      VisualStudio/pictures/image-20250716132630126.png
  67. BIN
      VisualStudio/pictures/image-20250716132722604.png
  68. BIN
      VisualStudio/pictures/image-20250716132859459.png
  69. BIN
      VisualStudio/pictures/image-20250716132944174.png

+ 54
- 33
IAR/IAR.md View File

@@ -176,19 +176,36 @@ place in RAM_region { readwrite, /* 初始化变量 */

![image-20250715131503129](./pictures/image-20250715131503129.png)

| 选项 | 作用 | 建议使用情况 |
| ------------------- | ------------------------ | ---------------------- |
| Verify Download | 下载后自动校验程序正确性 | 需要确保下载成功时开启 |
| Suppress Download | 禁止下载程序 | 只想调试已有程序时开启 |
| Use Flash Loader(s) | 使用特定Flash烧录程序 | 编程内部闪存时勾选 |
| 选项 | 作用 | 建议使用情况 |
| ------------------- | ------------------------------------------------------------ | ---------------------- |
| Verify Download | 自动读取芯片内容并与主机上的HEX/ELF文件进行比对,确保数据一致,防止烧录出错。 | 需要确保下载成功时开启 |
| Suppress Download | 调试器连接后,只进行仿真或断点分析,不实际烧录代码。 | 只想调试已有程序时开启 |
| Use Flash Loader(s) | Flash Loader 文件将程序写入芯片的内部或外部 Flash 存储器。 | 编程内部闪存时勾选 |

`.board` 文件是IAR Embedded Workbench中用来描述目标硬件板(开发板)配置的文件。

- 它包含调试器接口信息(如JTAG/SWD设置)、时钟配置、芯片类型、连接参数等硬件相关的设定。
- IDE通过 `.board` 文件知道如何与目标板正确通信和调试。

**Mass Erase** 指的是对目标芯片整个闪存区域进行**全部擦除**的操作。
- 该选项开启后,调试器在烧写程序前,会先对芯片内部所有闪存区域执行一次彻底擦除,确保没有残留旧数据。



| 项目 | **J-Link (`SEGGER`)** | **ST-Link (ST官方)** | **i-Jet (`IAR Systems`)** |
| :------------------: | :--------------------------------: | :-------------------------: | :----------------------------: |
| **主要用途** | 通用 `ARM MCU` 调试/烧录 | `STM32` 专用调试器 | `IAR` 用户的高端调试器 |
| **支持芯片范围** | 多厂商 `ARM Cortex-M/R/A` | 仅 `STM32` 系列 | 多厂商 |
| **连接线数 (`SWD`)** | 最少 4 根,推荐 5~6 根 | 最少 4 根,推荐 5~6 根 | 最少 4 根,推荐 5~6 根 |
| **烧录/调试速度** | 快速(`Plus 15MHz+`) | `v2` 较慢,`v3` 提升明显 | 极快 |
| **实时调试功能** | ✅ 支持 `RTT`、`SWO`、`Trace` | ❌ `RTT`,支持 `SWO`(部分) | ✅ 高级 `trace`、功耗分析 |
| **串口/调试打印** | `RTT` / `SWO` | `SWO`(支持 `printf`) | `SWO`/` Trace`(集成于 `IAR`) |
| **兼容 IDE** | `Keil`,` IAR`,` VSCode`,` CubeIDE` | `CubeIDE`,` Keil`,` IAR` | ✅ 最佳支持 `IAR`(专用设计) |
| **授权限制** | `EDU` 版限非商业用途 | 无限制(开发板自带免费) | 商用授权,一般随 `IAR` 捆绑 |
| **价格** | 中等 | 较低 | 较高 |



### 库相关配置

![image-20250709100552114](./pictures/image-20250709100552114.png)
@@ -252,6 +269,17 @@ place in RAM_region { readwrite, /* 初始化变量 */

选择数据断点,可以选择是读触发还是写触发,同时可以结合条件断点使用。

| 类型 | 触发条件 | 用途 |
| ------------ | ----------------------------------------- | ------------------ |
| **数据断点** | **变量的值或地址被访问(读/写)** 时触发 | 监控变量的读写 |
| **条件断点** | **满足特定条件时(如变量值==10)** 才中断 | 控制断点的触发时机 |

### 数据断点的功能作用:

- 监控内存某个地址的**读写行为**
- 追踪变量在哪被意外修改
- 调试“野指针”或“内存越界”问题

### 监控信息

![image-20250709101836850](./pictures/image-20250709101836850.png)
@@ -262,44 +290,43 @@ place in RAM_region { readwrite, /* 初始化变量 */



| 寄存器 | 名称 | 类型 | 说明 |
| ------------ | ------------------------------------- | ------------ | ------------------------------------------------------------ |
| **`R0–R3`** | 通用寄存器 | 通用 | 用于函数参数传递、临时数据处理等。R0 通常作为函数返回值寄存器。 |
| **R4–R11** | 通用寄存器 | 被调用者保存 | 用于本地变量、长生命周期数据。函数调用后,值需由被调用函数负责保存。 |
| **R12** | Intra-Procedure-call scratch register | 特定用途 | 通常由编译器用于中间值,调用过程临时数据,不保证保存。 |
| **R13 (SP)** | Stack Pointer | 特殊 | 栈指针,指向当前栈顶。用于局部变量、函数调用等。可分为 MSP/PSP。 |
| **R14 (LR)** | Link Register | 特殊 | 链接寄存器,存储函数返回地址。调用 `BL` 指令时保存返回点。 |
| **R15 (PC)** | Program Counter | 特殊 | 程序计数器,存储当前指令地址。控制程序执行流程。 |
| 寄存器 | 名称 | 类型 | 说明 |
| :------------: | :-----------------------------------: | :----------: | :----------------------------------------------------------: |
| **`R0–R3`** | 通用寄存器 | 通用 | 用于函数参数传递、临时数据处理等。R0 通常作为函数返回值寄存器。 |
| **`R4–R11`** | 通用寄存器 | 被调用者保存 | 用于本地变量、长生命周期数据。函数调用后,值需由被调用函数负责保存。 |
| **`R12`** | Intra-Procedure-call scratch register | 特定用途 | 通常由编译器用于中间值,调用过程临时数据,不保证保存。 |
| **`R14(LR)`** | Link Register | 特殊 | 链接寄存器,存储函数返回地址。调用 `BL` 指令时保存返回点。 |
| **`R15 (PC)`** | Program Counter | 特殊 | 程序计数器,存储当前指令地址。控制程序执行流程。 |

**R0–R3:参数 / 返回值 / 临时变量**
**`R0–R3`:参数 / 返回值 / 临时变量**

- 函数参数通过 R0~R3 传递(最多 4 个参数);
- 函数返回值一般通过 R0(或 R0~R1);
- 调用者需要保存这些值(Caller-saved)
- 函数参数通过 `R0~R3` 传递(最多 4 个参数);
- 函数返回值一般通过 `R0`(或` R0~R1`);
- 调用者需要保存这些值;

```
c复制编辑int add(int a, int b) {
int add(int a, int b) {
return a + b; // a→R0,b→R1,结果→R0
}
```



**R4–R11:局部变量 / 被调用者保存**
**`R4–R11`:局部变量 / 被调用者保存**

- 通常用于函数内部的变量或数据;
- 调用函数前由被调用者负责保存(Callee-saved)
- 调用函数前由被调用者负责保存;
- 在嵌套调用中保持数据完整性。

```
c复制编辑void foo() {
void foo() {
int x = 10; // 可能保存在 R4~R11 中
}
```



**R12:临时 scratch 寄存器**
**`R12`:临时 scratch 寄存器**

- 用于子程序中临时使用;
- 不由任何函数负责保存;
@@ -307,18 +334,18 @@ c复制编辑void foo() {



**R13(SP):栈指针 Stack Pointer**
**`R13(SP)`:栈指针 `Stack Pointer`**

- 指向当前栈顶地址;
- 控制函数调用/返回、局部变量压栈;
- Cortex-M 支持两种 SP:
- MSP(Main Stack Pointer)— 默认上电使用;
- PSP(Process Stack Pointer)— RTOS 多线程任务使用;
- `MSP(Main Stack Pointer)`— 默认上电使用;
- `PSP(Process Stack Pointer)``RTOS` 多线程任务使用;
- 使用 `MSR` 和 `MRS` 指令读写切换。



**R14(LR):链接寄存器 Link Register**
**`R14(LR)`:链接寄存器 Link Register**

- 存放函数返回地址;
- 执行 `BL`(Branch with Link)时,PC 会跳转到函数地址,当前 PC 会保存到 LR;
@@ -328,7 +355,7 @@ c复制编辑void foo() {



**R15(PC):程序计数器 Program Counter**
**`R15(PC)`:程序计数器 Program Counter**

- 保存当前执行指令地址;
- 所有分支、跳转指令都会修改 PC;
@@ -414,10 +441,4 @@ c复制编辑void foo() {



| 指令 | 编译 | 下载 | 进入调试 | 从头开始运行 | 是否保留断点 |
| ---- | ---- | ---- | -------- | ------------ | ------------ |
| **Download and Debug** | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Make & Restart Debugger** | ✅ | ❌(默认不下载) | ✅ | ✅ | ✅ |
| **Restart Debugger** | ❌ | ❌ | 已在调试中 | ✅ | ✅ |

[**参考文献**](https://blog.csdn.net/ideal121/article/details/118675124?fromshare=blogdetail&sharetype=blogdetail&sharerId=118675124&sharerefer=PC&sharesource=2301_81415726&sharefrom=from_link)

+ 29
- 5
SourceInSight/SourceInSight.md View File

@@ -82,19 +82,43 @@

常见四大窗口:

1. project Window:查看我们的工程所在文件夹以及文件夹下的文件
1. project Window:查看我们的工程所在文件夹以及文件夹下的文件(项目窗口)

- 显示当前项目中的所有源文件、头文件、库文件、组(Group)等结构。

- 可以进行添加、删除、重新组织源文件。

- 常用于“管理和构建项目结构”。

![image-20250709122721155](./pictures/image-20250709122721155.png)

2. Symbol Window:用于查看我们开启的文件以及文件内所包含的函数
2. Symbol Window:用于查看我们开启的文件以及文件内所包含的函数(符号窗口)

显示项目中所有的变量、函数、宏、类型等“符号”的定义。

支持快速导航,比如双击跳转到变量定义。

类似于 VSCode 的“Outline” 视图。

![image-20250709122927280](./pictures/image-20250709122927280.png)

3. Context Window串口:用于查看,函数中某个参数与函数的关系
3. Context Window串口:用于查看,函数中某个参数与函数的关系(上下文窗口)

显示当前代码所在的函数、命名空间、类的上下文路径。

类似于“你当前在哪个作用域”。

通常用于调试或阅读代码时的层级定位。

![image-20250709123057307](./pictures/image-20250709123057307.png)

4. Relation Window窗口:用于查看函数以及参数所定义的位置
4. Relation Window窗口:用于查看函数以及参数所定义的位置(关系窗口)

显示函数或变量之间的“调用关系”、“被调用关系”、“引用关系”。

用于分析函数调用链、依赖关系。

类似于“调用图”、“依赖图”。

![image-20250709123227589](./pictures/image-20250709123227589.png)

@@ -142,7 +166,7 @@
- **作用**:在整个工程或指定路径中查找文本(可正则)
- **功能亮点**:
- 可设置搜索路径、文件类型(*.c、*.h等)
- 可将结果导出为列表窗口
- 可将结;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;果导出为列表窗口
- **适用场景**:
- 搜索项目中所有文件中包含“某字符串”的位置
- **常用于**:


+ 221
- 25
SourceTree/Source Tree.md View File

@@ -47,12 +47,44 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

### 仓库相关操作

#### **创建本地仓库**
#### **创建本地仓库**(修改)

1. 有文件夹创建新文件

***在浏览里面选择我们要创建本地仓库的文件夹。***

![image-20250708170825330](./pictures/image-20250708170825330.png)

![image-20250716161207295](./pictures/image-20250716161207295.png)

点击是

![image-20250716161240555](./pictures/image-20250716161240555.png)

创建成功

![image-20250716161315531](./pictures/image-20250716161315531.png)

浏览里面选择要创建仓库的文件夹,即可以在该文件夹建立一个仓库,生成.git文件。

2. 没有文件夹创建本地仓库

- 选择路径

![image-20250716162208546](./pictures/image-20250716162208546.png)

- 桌面出现文件夹

![image-20250716162311987](./pictures/image-20250716162311987.png)

- 仓库建立成功

![image-20250716162354532](./pictures/image-20250716162354532.png)





#### **打开本地仓库**

![image-20250708170902654](./pictures/image-20250708170902654.png)
@@ -61,7 +93,7 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

![image-20250715083550523](./pictures/image-20250715083550523.png)

#### **克隆远程仓库**
#### **克隆远程仓库**(修改)

**获取URL:http://gitea.xinje.cc/wangshunkui/kong.git**

@@ -69,8 +101,24 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

**克隆**

- 填写URL地址和Clone到的空文件夹

![image-20250708171125862](./pictures/image-20250708171125862.png)

- 远端的内容

![image-20250716162610646](./pictures/image-20250716162610646.png)

![image-20250716162825962](./pictures/image-20250716162825962.png)

- 点击克隆

![image-20250716162936996](./pictures/image-20250716162936996.png)

- 实现结果

![image-20250716163014791](./pictures/image-20250716163014791.png)

#### **获取**

**获取是从远程仓库获取信息并同步至本地仓库(获取只会同步到本地仓库,不会更改工作文件)**
@@ -87,23 +135,59 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

注意:步骤四自己对远端电脑随便取个名就行。

​ 在 `SourceTree` 中,**克隆远程仓库**是指从远程 Git 仓库中下载完整的项目代码和提交历史,创建一个新的本地项目副本;而**关联远程仓库**是指在本地已存在的 Git 仓库中,添加一个远程仓库地址,以便将本地代码推送到远程或从远程拉取更新。两者的主要区别在于:克隆用于从远程获取项目,自动建立关联并初始化本地项目;而关联远程用于让已有的本地项目与远程仓库建立联系,通常用于首次推送代码。

### **节点相关操作**

#### **提交**

将工作区的内容放到仓库的这个过程叫做提交。将写完后的文档先添加到暂存区,然后再写日志提交。每一次提交产生一个节点。![image-20250708175643517](./pictures/image-20250708175643517.png)![image-20250708181530873](./pictures/image-20250708181530873.png)

#### 回滚提交
#### 回滚提交(修改)

“回滚提交”指的是对 Git 历史中的某个提交进行撤销、修改或恢复的操作。常见的回滚行为包括:

- **撤销最近的提交**

- **恢复到某个旧的提交版本**

- **撤销某一次错误的提交(保留历史)**

回滚提交多步时候会产生冲突,所以这时候需要我们去解决冲突。
- 回滚前

![image-20250716164205932](./pictures/image-20250716164205932.png)

![image-20250716163940888](./pictures/image-20250716163940888.png)

![image-20250716164007116](./pictures/image-20250716164007116.png)

- 回滚后

![image-20250716164356055](./pictures/image-20250716164356055.png)

![image-20250716164339076](./pictures/image-20250716164339076.png)



- 回滚的回滚

![image-20250716164601226](./pictures/image-20250716164601226.png)

![image-20250716164542292](./pictures/image-20250716164542292.png)

- 回滚到第一次回滚的回滚

![image-20250716164703990](./pictures/image-20250716164703990.png)

![image-20250715084950287](./pictures/image-20250715084950287.png)
![image-20250716164730426](./pictures/image-20250716164730426.png)

- 回滚多部操作

![image-20250716164948009](./pictures/image-20250716164948009.png)

![image-20250716165008026](./pictures/image-20250716165008026.png)

产生冲突,需要去解决冲突

#### **重置当前分支到此次提交**

@@ -111,19 +195,37 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

![image-20250715085358478](./pictures/image-20250715085358478.png)

#### Source Tree三种合并和区别
-

#### Source Tree三种合并和区别(修改)

混合合并:

是指将此次提交回滚到指定的位置,但这个过程中不会将修改过的文件暂存到暂存区,而是将修改过的文件存放在未暂存文件区。
![image-20250716165347055](./pictures/image-20250716165347055.png)

![image-20250716165412325](./pictures/image-20250716165412325.png)

混合合并以后文件文件保存到了未暂存区,提供一次修改机会。

强行合并:

![image-20250716165606528](./pictures/image-20250716165606528.png)

![image-20250716165635842](./pictures/image-20250716165635842.png)



![image-20250716165650392](./pictures/image-20250716165650392.png)

是指将此次提交回滚到指定的位置,但这个过程中将直接丢弃之前修改的所有文件。

软合并:

软合并是指将此次提交回滚到指定提交位置,但这个过程中会将修改过的文件暂存到暂存区。
![image-20250716165155337](./pictures/image-20250716165155337.png)

![image-20250716165220392](./pictures/image-20250716165220392.png)

软合并之后,文件保存到暂存区,给一次修改机会。

### **分支相关操作**

@@ -133,29 +235,52 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

![image-20250708182630161](./pictures/image-20250708182630161.png)

#### **合并分支**
#### **合并分支**(修改)

激活master,选择要合并的支线,点击确定,将支线的所有变化的节点打包创建一个新节点合并过去。

1. 切换到**目标分支**(如 `master`)

2. 点击上方菜单栏的:**分支 → 合并(Merge)**

3. 在弹窗中选择你要合并进来的源分支(如 `dev1`)

4. 点击“确定”开始合并

5. 如果有冲突,会提示你处理冲突

6. 处理完冲突后,**提交合并记录**

##### 分支合并到主分支

![image-20250715085914861](./pictures/image-20250715085914861.png)

![image-20250715090114147](./pictures/image-20250715090114147.png)

![image-20250715090300179](./pictures/image-20250715090300179.png)

#### **删除分支**


##### 分支1合并到分支2

![image-20250716174627685](./pictures/image-20250716174627685.png)

![image-20250716174710474](./pictures/image-20250716174710474.png)

解决冲突

![image-20250716174746235](./pictures/image-20250716174746235.png)

合并成功

![image-20250716174814521](./pictures/image-20250716174814521.png)

##### 分支的分支合并到主分支

![image-20250716175432378](./pictures/image-20250716175432378.png)

![image-20250716175501064](./pictures/image-20250716175501064.png)

合并成功

![image-20250716175527294](./pictures/image-20250716175527294.png)

#### **删除分支**(修改)

1. **切换出要删除的分支,你不能删除当前正在使用的分支。请先切换到其他分支**。
2. 在左侧分支列表中,**右键你要删除的分支**
@@ -164,21 +289,75 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

**注意尚未合并的分支不能删除(即没有备份的分支)**

![image-20250715090620031](./pictures/image-20250715090620031.png)
![image-20250716174143186](./pictures/image-20250716174143186.png)

![image-20250716174201453](./pictures/image-20250716174201453.png)

![image-20250716174218591](./pictures/image-20250716174218591.png)

强行删除没有合并的分支

![image-20250716173351121](./pictures/image-20250716173351121.png)

![image-20250716173413156](./pictures/image-20250716173413156.png)

![image-20250716173444722](./pictures/image-20250716173444722.png)

![image-20250716173340425](./pictures/image-20250716173340425.png)

![image-20250715090534825](./pictures/image-20250715090534825.png)
因为分支没有和主分支合并,所以删除失败

![image-20250716173539786](./pictures/image-20250716173539786.png)

![image-20250716173551578](./pictures/image-20250716173551578.png)

#### **切换分支**
![image-20250716173721782](./pictures/image-20250716173721782.png)

## 适用场景和意义

| 场景 | 意义 |
| -------------------------- | ------------------------------------------------------------ |
| 🔁 **分支内容无用** | 某个分支用于试验、测试,最终未采用,强行删除避免冗余。 |
| 🧹 **清理历史** | 清理长期未合并、开发中断的“僵尸分支”。 |
| 🚫 **修复误操作** | 某分支是误建的,未提交或提交错误,无法 merge,不如直接强制删除。 |
| 🔒 **防止危险代码流入主干** | 某分支包含危险改动或潜在 Bug,为避免 merge 到主分支,立即删除。 |
| ⚠️ **冲突太多,放弃合并** | 分支与主干差异大、冲突重,重建更清晰,强行删除原分支。 |

#### **切换分支**(修改)

双击要切换的分支名字,出现小圆圈为激活状态。

#### **制造冲突**
![image-20250716170731012](./pictures/image-20250716170731012.png)

**检出分支**

![image-20250715110124406](./pictures/image-20250715110124406.png)

**“检出(checkout)远程分支”** 是指你将某个远程仓库(如 origin)上的分支拿到本地来使用、开发或查看的操作。

#### **制造冲突**(修改)

**本地冲突**:

分支2修改:

![image-20250716170409161](./pictures/image-20250716170409161.png)

分支1修改:

![image-20250716170518530](./pictures/image-20250716170518530.png)

合并分支:

![image-20250716170613121](./pictures/image-20250716170613121.png)

产生冲突:

![image-20250716170634869](./pictures/image-20250716170634869.png)

如果分支一修改了`1.txt`,分支2修改了`1.txt`且修改位置意义,修改内容不同合并时候就会产生冲突。

本地冲突:

​ 如果分支一修改了`1.txt`,分支2修改了`1.txt`且修改位置意义,修改内容不同合并时候就会产生冲突。

远程冲突:

@@ -292,7 +471,7 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

![image-20250715093055328](./pictures/image-20250715093055328.png)

#### 创建补丁
#### 创建补丁(修改)

1. 在 `SourceTree` 中,**选择你要导出补丁的提交
2. 右键点击 → 选择 **“创建补丁”** 或 “Export patch”
@@ -303,6 +482,17 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

![image-20250715104131125](./pictures/image-20250715104131125.png)

在分支创建补丁的意义

| 目的 | 原因和优势 |
| :-------------------: | :----------------------------------------------------------: |
| **1. 避免污染主分支** | 主分支(如 `master`、`main`)通常要保持稳定、可发布。在新建分支上做补丁开发,不会影响主线。 |
| **2. 更容易管理改动** | 分支相当于“一个封闭的变更沙箱”,方便组织、测试和提交改动。 |
| **3. 方便团队协作** | 提交到分支后,其他开发者可以基于该分支拉取代码、做代码审查(Review)或测试。 |
| **4. 创建补丁文件** | 使用 `git format-patch` 可以导出成 `.patch` 文件供邮件发送、打包发布或代码审计。 |



#### 应用补丁

选择补丁的位置选择补丁,点击应用。
@@ -380,7 +570,7 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

![image-20250708195200903](./pictures/image-20250708195200903.png)

#### 创建标签
#### 创建标签(修改)

**标识版本**:标签常用来标记软件的版本号,如 `v1.0.0`、`v2.1.3`,方便团队成员和用户明确某次发布对应的代码状态。

@@ -396,12 +586,18 @@ Git是一个开源的分布式版本控制系统,它能够高效地处理从

单击标签,切换到标签的节点所在位置。双击标签可以切换到标签节点的内容。

![image-20250716165912588](./pictures/image-20250716165912588.png)

双击标签可以切换到标签节点的内容。

![image-20250716165954714](./pictures/image-20250716165954714.png)

![image-20250716170026082](./pictures/image-20250716170026082.png)

#### 删除标签

![image-20250715094614190](./pictures/image-20250715094614190.png)

### 检出分支

![image-20250715110124406](./pictures/image-20250715110124406.png)

![image-20250715110143327](./pictures/image-20250715110143327.png)

BIN
SourceTree/pictures/image-20250716161207295.png View File

Before After
Width: 1140  |  Height: 570  |  Size: 28 KiB

BIN
SourceTree/pictures/image-20250716161240555.png View File

Before After
Width: 1214  |  Height: 392  |  Size: 32 KiB

BIN
SourceTree/pictures/image-20250716161315531.png View File

Before After
Width: 1909  |  Height: 1022  |  Size: 103 KiB

BIN
SourceTree/pictures/image-20250716161502965.png View File

Before After
Width: 1045  |  Height: 810  |  Size: 35 KiB

BIN
SourceTree/pictures/image-20250716161611739.png View File

Before After
Width: 1067  |  Height: 762  |  Size: 39 KiB

BIN
SourceTree/pictures/image-20250716161845432.png View File

Before After
Width: 1226  |  Height: 856  |  Size: 46 KiB

BIN
SourceTree/pictures/image-20250716162208546.png View File

Before After
Width: 1106  |  Height: 697  |  Size: 36 KiB

BIN
SourceTree/pictures/image-20250716162311987.png View File

Before After
Width: 546  |  Height: 350  |  Size: 326 KiB

BIN
SourceTree/pictures/image-20250716162354532.png View File

Before After
Width: 1857  |  Height: 1016  |  Size: 95 KiB

BIN
SourceTree/pictures/image-20250716162610646.png View File

Before After
Width: 1722  |  Height: 747  |  Size: 64 KiB

BIN
SourceTree/pictures/image-20250716162825962.png View File

Before After
Width: 897  |  Height: 647  |  Size: 24 KiB

BIN
SourceTree/pictures/image-20250716162936996.png View File

Before After
Width: 1911  |  Height: 371  |  Size: 34 KiB

BIN
SourceTree/pictures/image-20250716163014791.png View File

Before After
Width: 1920  |  Height: 836  |  Size: 115 KiB

BIN
SourceTree/pictures/image-20250716163650811.png View File

Before After
Width: 1236  |  Height: 606  |  Size: 45 KiB

BIN
SourceTree/pictures/image-20250716163725582.png View File

Before After
Width: 1387  |  Height: 611  |  Size: 53 KiB

BIN
SourceTree/pictures/image-20250716163940888.png View File

Before After
Width: 1214  |  Height: 765  |  Size: 82 KiB

BIN
SourceTree/pictures/image-20250716164007116.png View File

Before After
Width: 1450  |  Height: 697  |  Size: 75 KiB

BIN
SourceTree/pictures/image-20250716164205932.png View File

Before After
Width: 566  |  Height: 359  |  Size: 23 KiB

BIN
SourceTree/pictures/image-20250716164339076.png View File

Before After
Width: 515  |  Height: 339  |  Size: 18 KiB

BIN
SourceTree/pictures/image-20250716164356055.png View File

Before After
Width: 872  |  Height: 361  |  Size: 15 KiB

BIN
SourceTree/pictures/image-20250716164542292.png View File

Before After
Width: 832  |  Height: 417  |  Size: 32 KiB

BIN
SourceTree/pictures/image-20250716164601226.png View File

Before After
Width: 697  |  Height: 321  |  Size: 21 KiB

BIN
SourceTree/pictures/image-20250716164703990.png View File

Before After
Width: 1006  |  Height: 542  |  Size: 25 KiB

BIN
SourceTree/pictures/image-20250716164730426.png View File

Before After
Width: 570  |  Height: 389  |  Size: 23 KiB

BIN
SourceTree/pictures/image-20250716164820220.png View File

Before After
Width: 1026  |  Height: 827  |  Size: 62 KiB

BIN
SourceTree/pictures/image-20250716164948009.png View File

Before After
Width: 1332  |  Height: 612  |  Size: 58 KiB

BIN
SourceTree/pictures/image-20250716165008026.png View File

Before After
Width: 1605  |  Height: 964  |  Size: 81 KiB

BIN
SourceTree/pictures/image-20250716165155337.png View File

Before After
Width: 1516  |  Height: 786  |  Size: 86 KiB

BIN
SourceTree/pictures/image-20250716165220392.png View File

Before After
Width: 1156  |  Height: 846  |  Size: 41 KiB

BIN
SourceTree/pictures/image-20250716165347055.png View File

Before After
Width: 1232  |  Height: 691  |  Size: 75 KiB

BIN
SourceTree/pictures/image-20250716165412325.png View File

Before After
Width: 1225  |  Height: 815  |  Size: 38 KiB

BIN
SourceTree/pictures/image-20250716165606528.png View File

Before After
Width: 1456  |  Height: 834  |  Size: 87 KiB

BIN
SourceTree/pictures/image-20250716165635842.png View File

Before After
Width: 562  |  Height: 175  |  Size: 12 KiB

BIN
SourceTree/pictures/image-20250716165650392.png View File

Before After
Width: 1485  |  Height: 664  |  Size: 69 KiB

BIN
SourceTree/pictures/image-20250716165912588.png View File

Before After
Width: 1024  |  Height: 757  |  Size: 71 KiB

BIN
SourceTree/pictures/image-20250716165954714.png View File

Before After
Width: 1480  |  Height: 900  |  Size: 98 KiB

BIN
SourceTree/pictures/image-20250716170026082.png View File

Before After
Width: 1056  |  Height: 471  |  Size: 31 KiB

BIN
SourceTree/pictures/image-20250716170409161.png View File

Before After
Width: 761  |  Height: 604  |  Size: 56 KiB

BIN
SourceTree/pictures/image-20250716170518530.png View File

Before After
Width: 801  |  Height: 694  |  Size: 64 KiB

BIN
SourceTree/pictures/image-20250716170613121.png View File

Before After
Width: 1257  |  Height: 717  |  Size: 88 KiB

BIN
SourceTree/pictures/image-20250716170634869.png View File

Before After
Width: 1585  |  Height: 992  |  Size: 114 KiB

BIN
SourceTree/pictures/image-20250716170731012.png View File

Before After
Width: 1135  |  Height: 689  |  Size: 78 KiB

BIN
SourceTree/pictures/image-20250716173340425.png View File

Before After
Width: 1907  |  Height: 374  |  Size: 52 KiB

BIN
SourceTree/pictures/image-20250716173351121.png View File

Before After
Width: 1920  |  Height: 771  |  Size: 147 KiB

BIN
SourceTree/pictures/image-20250716173413156.png View File

Before After
Width: 1734  |  Height: 931  |  Size: 120 KiB

BIN
SourceTree/pictures/image-20250716173444722.png View File

Before After
Width: 1541  |  Height: 937  |  Size: 104 KiB

BIN
SourceTree/pictures/image-20250716173539786.png View File

Before After
Width: 1285  |  Height: 831  |  Size: 83 KiB

BIN
SourceTree/pictures/image-20250716173551578.png View File

Before After
Width: 1101  |  Height: 701  |  Size: 68 KiB

BIN
SourceTree/pictures/image-20250716173633204.png View File

Before After
Width: 881  |  Height: 272  |  Size: 16 KiB

BIN
SourceTree/pictures/image-20250716173721782.png View File

Before After
Width: 1589  |  Height: 517  |  Size: 56 KiB

BIN
SourceTree/pictures/image-20250716174143186.png View File

Before After
Width: 1397  |  Height: 837  |  Size: 114 KiB

BIN
SourceTree/pictures/image-20250716174201453.png View File

Before After
Width: 1059  |  Height: 481  |  Size: 43 KiB

BIN
SourceTree/pictures/image-20250716174218591.png View File

Before After
Width: 1461  |  Height: 816  |  Size: 96 KiB

BIN
SourceTree/pictures/image-20250716174627685.png View File

Before After
Width: 1087  |  Height: 1007  |  Size: 87 KiB

BIN
SourceTree/pictures/image-20250716174710474.png View File

Before After
Width: 1100  |  Height: 446  |  Size: 31 KiB

BIN
SourceTree/pictures/image-20250716174746235.png View File

Before After
Width: 1497  |  Height: 905  |  Size: 60 KiB

BIN
SourceTree/pictures/image-20250716174814521.png View File

Before After
Width: 1215  |  Height: 707  |  Size: 86 KiB

BIN
SourceTree/pictures/image-20250716175432378.png View File

Before After
Width: 766  |  Height: 860  |  Size: 81 KiB

BIN
SourceTree/pictures/image-20250716175501064.png View File

Before After
Width: 1597  |  Height: 782  |  Size: 114 KiB

BIN
SourceTree/pictures/image-20250716175527294.png View File

Before After
Width: 1571  |  Height: 886  |  Size: 113 KiB

BIN
SourceTree/pictures/image-20250716175559009.png View File

Before After
Width: 1571  |  Height: 886  |  Size: 113 KiB

+ 15
- 1
VisualStudio/VisualStudio.md View File

@@ -48,7 +48,21 @@

![image-20250710095042067](./pictures/image-20250710095042067.png)

~~包括就是将排除的文件添加回去~~
包括就是将排除的文件添加回去

1. 点击显示所有文件:

![image-20250716132630126](./pictures/image-20250716132630126.png)

2. 展开文件

![image-20250716132722604](./pictures/image-20250716132722604.png)

3. 鼠标选择排除文件,右键

![image-20250716132859459](./pictures/image-20250716132859459.png)

![image-20250716132944174](./pictures/image-20250716132944174.png)

## 工程配置
### 解决方案配置


BIN
VisualStudio/pictures/image-20250716132630126.png View File

Before After
Width: 371  |  Height: 457  |  Size: 22 KiB

BIN
VisualStudio/pictures/image-20250716132722604.png View File

Before After
Width: 287  |  Height: 424  |  Size: 22 KiB

BIN
VisualStudio/pictures/image-20250716132859459.png View File

Before After
Width: 560  |  Height: 706  |  Size: 45 KiB

BIN
VisualStudio/pictures/image-20250716132944174.png View File

Before After
Width: 387  |  Height: 490  |  Size: 29 KiB

Loading…
Cancel
Save