1.版本控制
- 简而言之,备份与记录
- 作用:
2.1 记录文件的所有历史变化 2.2 错误恢复到某个历史版本 2.3 多人协作开发编辑同一个文件
-
本地版本控制系统 ![在这里插入图片描述](https://img-blog.csdnimg.cn/975e43458eab4963abac18db94103e0a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_13,color_FFFFFF,t_70,g_se,x_16) -
集中化的版本控制系统
典型代表——SVN ![在这里插入图片描述](https://img-blog.csdnimg.cn/359bf80b6e06466fa838d8d20e7eac94.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_15,color_FFFFFF,t_70,g_se,x_16) -
分布式版本控制系统
典型代表——GIT ![在这里插入图片描述](https://img-blog.csdnimg.cn/0b940d55551e42e5b6eb915cb62a1a3f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_14,color_FFFFFF,t_70,g_se,x_16)
2.Windows安装Git
2.1 下载安装
镜像下载Git网站:https://npm.taobao.org/mirrors/git-for-windows/ 下载最新版本即可
安装很简单,不再赘述安装过程
- 安装好之后,鼠标右键可看到
![在这里插入图片描述](https://img-blog.csdnimg.cn/832cb282f2fe4cc98dab92ee3f0b3236.png) GUI很少用,一般使用命令窗口Bash - 配置用户信息(必须配置)
git config --global user.name "自定义名字" #配置用户名字
git config --global user.emain "你使用的邮箱" #配置用户邮箱
git config --global --list #查看当前用户(global)配置
配置环境变量:为了能全局使用,可以不配置
但使用idea,如果报错:idea file not found: git.exe 或 ‘git’ 不是内部或外部命令,也不是可运行的程序,时,就需要配置
3.Git文件的三种状态与工作模式
状态 | 描述 |
---|
已提交(committed) | 表示数据已经安全的保存在本地数据库 | 已修改(modified) | 表示修改了文件,但还没保存到数据库中 | 已暂存(staged) | 表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中 |
本地工作区:
工作区域 | 描述 |
---|
工作区 | 简单的理解为在电脑里能看到的目录,比如自己创建的本地项目目录 | 暂存区 | Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD | Git仓库 | 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库 |
![请添加图片描述](https://img-blog.csdnimg.cn/d3636b3a61dc4f0698ad40e4bce6b2e1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16)
4.本地版本库初始化与文件提交
4.1 完整工作区域
工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory),如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/349256813ccf406b8d18693d16eddc0d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16)
4.2 文件提交
- 随便找个文件夹,鼠标右键调出Git命令窗口
git init 创建一个.git文件夹- 查看设置,才能看到.git文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/b6a9540c2e0d4531b159677bf6184a66.png) - 新建一个.txt文件,并将它加载到暂存区
![在这里插入图片描述](https://img-blog.csdnimg.cn/c3395cd4c0e045a0bc6bf223435ba708.png)
git status #查看当前文件夹文件状态
git add test.txt #将test.txt加载到缓存区
git add . #将所有文件加载到缓存区
- 提交文件到Git仓库
git commit test.txt -m "自己写描述" #提交文件到Git仓库
git ls-files #查看仓库的文件列表
![在这里插入图片描述](https://img-blog.csdnimg.cn/2b72ff85873141ce8675f52c6995619a.png)
5.版本切换
5.1 文件修改与比对
- 修改之前提交的文件,
git status 查看状态 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a3bd6f5bbd384229bb66a1d46a5960d5.png) - 重新上传到暂存区,
git add . ,查看状态 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2a2565da47934135a060cca085081344.png) - 上传到本地仓库,
git commit -m "修改第一次后提交" ,查看状态 ![在这里插入图片描述](https://img-blog.csdnimg.cn/10e3bbe1f0974b729d92b890e7b87967.png) - 查看提交日志记录,
git log - 与版本库内容进行比较,
git diff HEAD -- test.txt 查看暂存区的文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f62af5775d954340b167617c1a050ba6.png)
差异比较说明: --- :表示变动前的文件 +++ :表示变动后的文件 变动的位置用两个@作为起首和结束 @@ -1,2 +1,3 @@:- 表示第一个文件, 1 表示第1行,2 表示连续两行, + 表示变动后的文件,1 表示第一行, 3 表示连续三行。
注意:当没有任何输出的时候(即提交之后),表示此文件与版本库中的文件一样,未发生任何变动
5.2 文件版本切换
当提交记录过多的时候,使用git log ,略显臃肿,可用--pretty=oneline 简化输出:每次提交记录只显示一行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9d9c7bc1457f43cb89062b7bfd079f4e.png)
回退到上一版本:git reset --hard HEAD^ ,上两个版本用^^ ![在这里插入图片描述](https://img-blog.csdnimg.cn/cd61937a321c40cb9eca848ce9ae1f18.png) 回到上n个版本:git reset --hard HEAD~100 ,回到前多个版本 ![在这里插入图片描述](https://img-blog.csdnimg.cn/51d0a38c3f3e43598f174b20458d0cb9.png) 回到指定版本位置,git reset --hard 版本hash值(5~8个字符) ![在这里插入图片描述](https://img-blog.csdnimg.cn/5488778bc74440f28428846cb6c0e68a.png) 查看当前用户最近操作日志记录,git reflog ,可用于查找所有版本的hash值 ![在这里插入图片描述](https://img-blog.csdnimg.cn/48c6d752c6354f04a490368b0c24c710.png)
5.3 文件删除
-
当文件(已提交到git库的文件)被误删之后,使用git checkout 从版本库中检出 注意:可使用git status 追踪文件状态
如:我将已提交的test.txt文件误删后的恢复流程 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fa88ff2d03284a11a4195a5094795d68.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/39dc50f18a4942579bf7ecf3edac6ed0.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/01b425670735439b90a7f2160b1aa3f4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/6fccb77e99e24563991df4e766bdcaa6.png) -
当确认要删除某个文件后,使用git rm 文件名 ![在这里插入图片描述](https://img-blog.csdnimg.cn/78c171d90ab84e6aa992809acfc7bfa4.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/411f7086af7149d29cdf0f530e4ab625.png)
6.远程仓库github
下载方式:
- zip压缩包
- git:ssh、https
复制地址,选择一个本地目录打开Git Bash,git clone 地址 克隆到本地
注意:ssh比https编程效率高、也更安全。
国内登陆github需要一些加速器辅助才行
6.1 创建ssh公钥
- 本地生成ssh公钥和私钥,
ssh-keygen -t rsa -C "github账户邮箱" 一直回车就行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/907e24d5e33a4068bb2c71d8f7ab8a5c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/1fe7203d24824d7baa7291f6c7a1034e.png) - 将公钥上传到github
![在这里插入图片描述](https://img-blog.csdnimg.cn/1943b9bbec454fffbc9adb0de2e6d336.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/4a77287254e746528f84d063f239c3e4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/7407bf23943a4cf88a4a140998fef1a7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/69ff4961b76d4ecbb44b5717792f7955.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) - 验证是否配置成功,
ssh -T git@github.com ![在这里插入图片描述](https://img-blog.csdnimg.cn/0a7cbad219c64ec99859b9064f7b790c.png)
6.2 远程推送
- 创建一个远程仓库
![在这里插入图片描述](https://img-blog.csdnimg.cn/6455717e66714c56a9d4f380da4c0662.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_12,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/07d9960365c44fc39a65cfff58b23a5f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/444d4638b970458bbbcce10fc9a9d96e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) - 本地上传文件
找到本地需要上传的文件的目录,右键Git Bash ![在这里插入图片描述](https://img-blog.csdnimg.cn/e201e944f318448e9e01685ff02e61d9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) 刷新一下网页 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bf832ec2c8e94917b536e9a3b623400e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) 推送成功
6.3 删除文件
由上图可知,之前在本地git仓库删除掉的test.txt仍然推送到了github,接下来演示如何删除它
- 先提交一次
- 再推送一次
![在这里插入图片描述](https://img-blog.csdnimg.cn/93723c70488548249461d7c4eb21af9f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/051ad26b2ece41cd855b7e46df2b5d2b.png)
总结:先在本地执行git rm 删除操作,然后提交,再推送一次,就OK了
7.Git本地分支操作
多人合作的项目在开发时通常不会直接在主干master上进行操作,而是重新开辟新的分支,在新的分支上进行开发 调试 等操作,当项目调试通过时才会将分支项目的代码合并到主干中。
7.1 分支指令
Git对于分支操作提供了以下基本的命令:
命令 | 说明 |
---|
git checkout branch | 切换到指定分支 | git checkout -b new_branch | 新建分支并切换到新建分支 | git branch -d branch | 删除指定分支 | git branch | 查看所有分支,并且*号标记当前所在分支 | git merge branch | 合并分支 | git branch -m | -M oldbranch newbranch | 重命名分支,如果newbranch名字分支已存在,则需要使用-M强制重命名,否则使用-m重命名 |
7.2 具体操作
分支的列表展示与切换 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d8846301be044ae9a4ba9b557e65b5fe.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_19,color_FFFFFF,t_70,g_se,x_16) 新建一个文本,并合并 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f96200036a0445419ebe8c327ee23d6a.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/90228aad7c2f4a3fa361b2803881fd13.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) 分支命名 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a1b3a0650b31414f8513931a774d552a.png) 分支删除 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f441ec2c0939404484ec7f6b521f163d.png)
注意:主干不能删
7.3 分支推送与拉取
- 相关指令
命令 | 说明 |
---|
git branch -a | 查看本地与远程分支 | git push origin branch_name | 推送本地分支到远程 | git push origin :remote_branch | 删除远程分支(本地分支保留) | git checkout -b local_branch origin/remote_branch | 拉取远程指定分支并在本地创建分支 |
- 操作演示——本地分支推送到远程
![在这里插入图片描述](https://img-blog.csdnimg.cn/f60e9cd0cf1543108d87bab6621cbdf2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) 分支推送成功: ![在这里插入图片描述](https://img-blog.csdnimg.cn/8dd00e417cb447f4a6ab29eed90350df.png) - 操作演示——远程创建dev拉取到本地
因为github没有提供创建分支的按钮,所以先本地创建一个dev分支,推送到github之后并删除其本地分支git branch -D dev ,再演示远程拉取dev到本地。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/485d985b6cd846c7aacca9ee74d7650a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_11,color_FFFFFF,t_70,g_se,x_16) 将文件克隆到本地 ![在这里插入图片描述](https://img-blog.csdnimg.cn/44f9c37f6f1c4dffbdfedc0b76bf1a3e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/6f959b7d93c44dae8a0756eb0e5bcafb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/9f27c37459dc4656b55f758feb628cea.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16)
7.3 本地分支冲突出现与解决
冲突演示 查看两个分支共同拥有的文件,并选取一个 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d41617856cd7401f8453a22b1ddfe921.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_19,color_FFFFFF,t_70,g_se,x_16) 查看分支中文件的内容cat test1_0.txt ,我这里是因为cat显示乱码,临时添加编码方式查看cat test1_0.txt | iconv -f GBK -t UTF-8 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e77328c2b8af4fa7b19230fdec8fbd0d.png) 修改文件内容 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8156a22838224a5a9c5afff8ea6473c6.png) 修改之后提交 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4881cea3ca4c4d55860c1e9d666e96bb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) 切换到main分支,并查看修改test1_0.txt的内容, ![在这里插入图片描述](https://img-blog.csdnimg.cn/d678555b9eda46d2bbee6eb07f296382.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/fae2b08b89844a30aa1e4c8c06cedfc3.png) 修改之后提交 ![在这里插入图片描述](https://img-blog.csdnimg.cn/14c739513cf9482782f710878764f53f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_19,color_FFFFFF,t_70,g_se,x_16) 合并dev,发生冲突 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5ad2dfcd9df243fc8beba5a216763387.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/fe07ad47b7574fe2b09dbf00e3d915b6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) 修改文件内容,删去===,<<,>>后提交 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bca4b3f97125424292d296070cfb6b06.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/8f6a542116514fc0ae7374e96c4fbd22.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16)
7.4 多人协同操作冲突
多人协同操作冲突比较常见
冲突演示 拉取远程仓库dev并在本地创建dev开发库,执 行命令git checkout -b dev origin/dev ,以同台电脑不同的窗口来模拟两个用户操作同一分支同一文件
-
克隆到桌面,并到克隆文件中打开控制git命令行拉取远端分支dev ![在这里插入图片描述](https://img-blog.csdnimg.cn/30082ee1163742168337b0968b4f1f31.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/9e1455de81384d1fbd736dfb8caba855.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) -
另找一个目录,进行相同操作 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8535708758e54bbc806cdb2e9fb1cb4a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) -
修改文件内容 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2c14b9f1450b49b4a081a7289a4f8fef.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/246987cd872549b7904ee2e9fab3abf8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) 并提交 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7286e7d3eb3f4bfb89ac771af4f710c1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/57f74712671545c6b06885edc1d65b94.png) 两个端口都做推送 ![在这里插入图片描述](https://img-blog.csdnimg.cn/976095d6075e4948ba980ac7f79291e8.png) 可看出,后推送的报错,远程拒绝推送。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/306d58431f484cdb8b748c06846ddf69.png)
防范措施 在执行git push 操作之前,先执行git pull 操作,保持本地和远端内容一致,再添加新的内容,然后再提交。
8.标签管理
通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
标签操作基本命令
命令 | 说明 |
---|
git tag tag_name | 新建标签,默认为HEAD | git tag -a tag_name -m ‘xxx’ | 添加标签并指定标签描述信息 | git tag | 查看所有标签 | git tag -d tag_name | 删除一个本地标签 | git push origin tag_name | 推送本地标签到远程 | git push origin --tags | 推送全部未推送过的本地标签到远程 | git push origin :refs/tags/tag_name | 删除一个远程标签 |
![在这里插入图片描述](https://img-blog.csdnimg.cn/481850238da545fbb86b6af39210e245.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/ccf445e41abf4febb4fee2cadd000b10.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_16,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/0f0f9417429044e084d61d9549a9d76d.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/a74fac4caa1b47ae9e371cfa2149ce25.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/3cae0917346547349aca4969f3fbf511.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16)
9.知识点小结
![请添加图片描述](https://img-blog.csdnimg.cn/80b6b9d76fdd491d89ab41e189829bfe.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAMzY0Ljk5wrA=,size_20,color_FFFFFF,t_70,g_se,x_16)
|