# my-gitlab-springboot

笔记  
[Git笔记](https://git.yfzx.zjtys.com.cn/mry1006/my-gitlab-springboot)
(https://git.yfzx.zjtys.com.cn/mry1006/my-gitlab-springboot)
*********

## 为什么要使用Git

__首先Git的核心: HEAD指针，分支__  
 - 免费开源的分布式版本控制系统
 - 具有廉价的本地库
 - 方便的暂存区
 - 多工作流分支
 - 性能优于其他
## Git与SVN对比

|\|SVN|Git|
|:---:|:---:|:---:|
|分布式|不是|是|
|在线阅读|不支持|不仅支持，而且可以在线编辑|
|存储方式|按文件|按元数据|
|完整性|一般|优|
|离线工作|无法查看日志|可以|
|分支|分支是一个完整的目录|随意开辟无限个分支|
## Git的工作机制

1. ___工作区:___
    - _代码存放磁盘的目录位置_
2. ___暂存区:___
    - _临时存储，将工作区的代码添加到暂存区_
3. ___本地库:___
    - _将暂存区的代码提交到本地库，就会生成对应的历史版本，一般情况下删除不掉_  

********

## GitLab版本控制

### 1.GitLab流程图
![图片](image/1.png)
### 2.GitLab版本回退
![图片](image/0.png)
**********
> ### GitLab远程仓库创建流程
> #### 1.GitLab远程仓库创建
![图片](image/2.png)
> #### 2.GitLab远程仓库创建说明
![图片](image/3.png)
> #### 3.复制SSH，或者HTTPS地址，一会会用到
![图片](image/5.png)
> #### 4.IDEA中将项目交给Git管理
![图片](image/6.png)
> #### 5.选择相应的文件目录
![图片](image/7.png)
> #### 6.可以看到文件名变成了红色，这表示文件未添加到暂存区
![图片](image/8.png)
> #### 7.由于项目中的很多文件是IDEA自动生成的，所以不需要上传所有的文件，可以安装.gitignore插件，选择哪些文件不上传
![图片](image/9.png)
> #### 8.这里已经准备好了一些选项，可以直接选择编程语言中的JAVA
![图片](image/10.png)
> #### 9.add将文件添加到暂存区
![图片](image/11.png)
> #### 10.commit将文件添加到工作区
![图片](image/12.png)
> #### 11.push将文件上传到远程仓库
![图片](image/13.png)
> #### 12.选择上传的分支，并且给远程地址起一个名字，这时将之前复制的SSH地址或者HTTPS地址粘贴过来
![图片](image/14.png)
> #### 13.push上传到远程仓库
![图片](image/15.png)
> #### 14.如图所示则表示上传成功
![图片](image/16.png)
> #### 15.当远程仓库已经.md文件存在时，会发生上传合并冲突，这时创建分支上传即可,如图所示则是上传失败
![图片](image/17.png)
> #### 16.点击master选择New Branch创建新的分支
![图片](image/18.png)
> #### 17.给分支命名
![图片](image/19.png)
> #### 18.下边的名称从master变成了dog，表示当前在dog分支中
![图片](image/20.png)
> #### 19.这时左上角显示为上传到dog远程分支上
![图片](image/21.png)
> #### 20.上传成功
![图片](image/22.png)
> #### 21.这时可以看到远程仓库有两个分支，当前在master分支中
![图片](image/23.png)
> #### 22.创建合并请求，将master分支与dog分支合并
![图片](image/24.png)
> #### 23.合并分支
![图片](image/25.png)
![图片](image/26.png)
> #### 24.可以看出，master与dog分支合并成功，将dog分支合并到了主分支master中
![图片](image/27.png)
> #### 25.切换会master分支
![图片](image/29.png)
> #### 26.将远程仓库合并后的文件pull到IDEA中，可以方便修改.md文件
![图片](image/28.png)
> #### 27.显示文件更新成功了，会发现左侧出现了.md文件
![图片](image/30.png)
> #### 28.README.md文件pull成功
![图片](image/31.png)