From df77c5f9edc0ab48994581d76b783ae0fcd5225f Mon Sep 17 00:00:00 2001 From: wsk Date: Fri, 11 Jul 2025 19:03:43 +0800 Subject: [PATCH] SourceTreerevise --- SourceTree/Source Tree.md | 195 ++++++++++++++++++++++---------------- 1 file changed, 115 insertions(+), 80 deletions(-) diff --git a/SourceTree/Source Tree.md b/SourceTree/Source Tree.md index 6756a57..9a72bdd 100644 --- a/SourceTree/Source Tree.md +++ b/SourceTree/Source Tree.md @@ -1,22 +1,22 @@ # 代码管理相关知识点 ## Git -- Git的概念 +### Git的概念 - Git是一个开源的分布式版本控制系统,它能够高效地处理从小到大的项目。 +Git是一个开源的分布式版本控制系统,它能够高效地处理从小到大的项目。 -- 三个区域的概念 +#### 三个区域的概念 - - 工作区 +- 工作区 - 平时存放项目的地方,可以在工作区直接修改。 + 平时存放项目的地方,可以在工作区直接修改。 - - 暂存区 +- 暂存区 - 用于临时存放改动,保存即将提交的文件列表信息。 + 用于临时存放改动,保存即将提交的文件列表信息。 - - 仓库区(版本库) +- 仓库区(版本库) - 就是安全存放数据的位置,这里面有提交到所有版本的数据(版本快照)。 + 就是安全存放数据的位置,这里面有提交到所有版本的数据(版本快照)。 - 仓库的概念 @@ -41,144 +41,179 @@ ## SourceTree -- SourceTree的概念 +### SourceTree的概念 - - SourceTree 是 Windows 和Mac OS X 下免费的 **Git 客户端,**拥有可视化界面,容易上手操作。 +- SourceTree 是 Windows 和Mac OS X 下免费的 **Git 客户端,**拥有可视化界面,容易上手操作。 -- 仓库相关操作 +### 仓库相关操作 - - **创建本地仓库** +#### **创建本地仓库** - ![image-20250708170825330](./pictures/image-20250708170825330.png) +![image-20250708170825330](./pictures/image-20250708170825330.png) - - **打开本地仓库** +#### **打开本地仓库** - ![image-20250708170902654](./pictures/image-20250708170902654.png) +![image-20250708170902654](./pictures/image-20250708170902654.png) - - **克隆远程仓库** +#### **克隆远程仓库** - ![image-20250708171125862](./pictures/image-20250708171125862.png) +![image-20250708171125862](./pictures/image-20250708171125862.png) - - **获取** +#### **获取** - ​ 获取是从远程仓库获取信息并同步至本地仓库(获取只会同步到本地仓库,不会更改工作文件) +​ 获取是从远程仓库获取信息并同步至本地仓库(获取只会同步到本地仓库,不会更改工作文件) - ![image-20250709090736034](./pictures/image-20250709090736034.png) +![image-20250709090736034](./pictures/image-20250709090736034.png) - - **关联远程仓库** +#### **关联远程仓库** - - ![image-20250708192038104](./pictures/image-20250708192038104.png) +- ![image-20250708192038104](./pictures/image-20250708192038104.png) -- **节点相关操作** +### **节点相关操作** - - **提交** :将工作区的内容放到仓库的这个过程叫做提交。将写完后的文档先添加到暂存区,然后再写日志提交。每一次提交产生一个节点。![image-20250708175643517](./pictures/image-20250708175643517.png)![image-20250708181530873](./pictures/image-20250708181530873.png) +#### **提交** - - **重置**(将修改后在未暂存区的东西,恢复修改前的版本) +将工作区的内容放到仓库的这个过程叫做提交。将写完后的文档先添加到暂存区,然后再写日志提交。每一次提交产生一个节点。![image-20250708175643517](./pictures/image-20250708175643517.png)![image-20250708181530873](./pictures/image-20250708181530873.png) - ![image-20250708181118121](./pictures/image-20250708181118121.png) +#### **重置** - - **回滚提交**:是指将改动的代码提交到本地仓库,但未推送到远端仓库的时候 +(将修改后在未暂存区的东西,恢复修改前的版本) - - **重置当前分支到此次提交**:是指将改动的代码提交到本地仓库后,并已推送到远端仓库的时候 +![image-20250708181118121](./pictures/image-20250708181118121.png) -- **分支相关操作** +#### 回滚提交 - - **新建分支**:创建的分支和主分支是完全一样的东西,新建分支旁边有圈代表分支激活,东西保存在该分支当中。 +是指将改动的代码提交到本地仓库,但未推送到远端仓库的时候 - ![image-20250708182630161](./pictures/image-20250708182630161.png) +#### **重置当前分支到此次提交** - - **合并分支** +是指将改动的代码提交到本地仓库后,并已推送到远端仓库的时候 - 激活master,选择要合并的支线,点击确定,将支线的所有变化的节点打包创建一个新节点合并过去。 - ![image-20250708183742264](./pictures/image-20250708183742264.png) - ![](./pictures/image-20250708183826186.png)![image-20250708184116528](./pictures/image-20250708184116528.png) +### **分支相关操作** - - 变基 +#### **新建分支** - ![image-20250708184441709](./pictures/image-20250708184441709.png) +创建的分支和主分支是完全一样的东西,新建分支旁边有圈代表分支激活,东西保存在该分支当中。 - 以分支为基合并到master里面 +![image-20250708182630161](./pictures/image-20250708182630161.png) - ![image-20250708184812262](./pictures/image-20250708184812262.png) +#### **合并分支** - 将之前的提交合并后再并入master +激活master,选择要合并的支线,点击确定,将支线的所有变化的节点打包创建一个新节点合并过去。 - ![image-20250708185604586](./pictures/image-20250708185604586.png) +![image-20250708183742264](./pictures/image-20250708183742264.png) - - **删除分支** +![](./pictures/image-20250708183826186.png)![image-20250708184116528](./pictures/image-20250708184116528.png) - 第一步先激活主分支 +- 变基 - ![image-20250708184916183](./pictures/image-20250708184916183.png)· + ![image-20250708184441709](./pictures/image-20250708184441709.png) - + 以分支为基合并到master里面 - - **切换分支** + ![image-20250708184812262](./pictures/image-20250708184812262.png) - 双击分支名字,出现小圆圈为激活状态。 + 将之前的提交合并后再并入master - - **制造冲突** + ![image-20250708185604586](./pictures/image-20250708185604586.png) + + - ![image-20250708190410001](./pictures/image-20250708190410001.png) +#### Source Tree三种合并和区别 - - **解决冲突** +混合合并: - 在需要提交的文件里面自己手动保留要更改的内容,然后鼠标右键选择已经解决冲突。还有一种方式是以我为准就是保存master的,以别人为准就是合并时候保存分支的。 +是指将此次提交回滚到指定的位置,但这个过程中不会将修改过的文件暂存到暂存区,而是将修改过的文件存放在未暂存文件区。 - - **拉取** +强行合并: - 选择从远端仓库中哪个分支获取。 +是指将此次提交回滚到指定的位置,但这个过程中将直接丢弃之前修改的所有文件。 - ![image-20250708193822773](./pictures/image-20250708193822773.png) +软合并: - - **推送** +软合并是指将此次提交回滚到指定提交位置,但这个过程中会将修改过的文件暂存到暂存区。 - 选择要发送到远端仓库的分支,点击推送。 +#### **删除分支** - ![image-20250708193624574](./pictures/image-20250708193624574.png) +第一步先激活主分支 -- 其他 +![image-20250708184916183](./pictures/image-20250708184916183.png)· - - 书写忽略文件 - ![image-20250708191109627](./pictures/image-20250708191109627.png)或者在这个隐藏文件中添加忽略的东西,可以是精确文件名,也可以是某一类后缀如*.txt,或者某个文件夹下的文件如/abc - ![image-20250708191157488](./pictures/image-20250708191157488.png) +#### **切换分支** - - 停止跟踪 +双击分支名字,出现小圆圈为激活状态。 - ![image-20250708194308960](./pictures/image-20250708194308960.png) +#### **制造冲突** - 停止跟踪后就不在受到版本管控 +![image-20250708190410001](./pictures/image-20250708190410001.png) - - 创建补丁 +#### **解决冲突** - ![image-20250708201504400](./pictures/image-20250708201504400.png) +在需要提交的文件里面自己手动保留要更改的内容,然后鼠标右键选择已经解决冲突。还有一种方式是以我为准就是保存master的,以别人为准就是合并时候保存分支的。 - - 应用补丁 +### **拉取** - ![image-20250708201320222](./pictures/image-20250708201320222.png) +选择从远端仓库中哪个分支获取。 - - 贮藏 +![image-20250708193822773](./pictures/image-20250708193822773.png) - ![image-20250708200138749](./pictures/image-20250708200138749.png)贮藏相当于保留这一次更改到贮藏区域,但是不提交,以后的更改还是争对上一次提交。 +### **推送** - - __丢弃__:放弃之前修改的文件,恢复上一次提交状态 +选择要发送到远端仓库的分支,点击推送。 - ![image-20250708195933808](./pictures/image-20250708195933808.png) +![image-20250708193624574](./pictures/image-20250708193624574.png) - - **移除**:(直接删除文件) +### 其他 - ![image-20250708195200903](./pictures/image-20250708195200903.png) +#### 书写忽略文件 - - 创建标签:(方便快速找到) +![image-20250708191109627](./pictures/image-20250708191109627.png)或者在这个隐藏文件中添加忽略的东西,可以是精确文件名,也可以是某一类后缀如*.txt,或者某个文件夹下的文件如/abc - ![image-20250708194852689](./pictures/image-20250708194852689.png) +![image-20250708191157488](./pictures/image-20250708191157488.png) - - 删除标签 +#### 停止跟踪 - ![image-20250708195022006](./pictures/image-20250708195022006.png) +![image-20250708194308960](./pictures/image-20250708194308960.png) + +停止跟踪后就不在受到版本管控 + +#### 创建补丁 + +![image-20250708201504400](./pictures/image-20250708201504400.png) + +#### 应用补丁 + +![image-20250708201320222](./pictures/image-20250708201320222.png) + +#### 贮藏 + +(只能暂存区可以) + +![image-20250708200138749](./pictures/image-20250708200138749.png)贮藏相当于保留这一次更改到贮藏区域,但是不提交,以后的更改还是争对上一次提交。 + +#### 丢弃 + +放弃之前修改的文件,恢复上一次提交状态(只能暂存区可以) + +![image-20250708195933808](./pictures/image-20250708195933808.png) + +#### 移除 + +(直接删除文件) + +![image-20250708195200903](./pictures/image-20250708195200903.png) + +#### 创建标签 + +(方便快速找到) + +![image-20250708194852689](./pictures/image-20250708194852689.png) + +#### 删除标签 + +![image-20250708195022006](./pictures/image-20250708195022006.png) - \ No newline at end of file