C++学习之金融类安全传输平台项目git

目录

1.知识点概述

2.版本控制工具作用

3.git和SVN

4.git介绍

5.git安装

[6.工作区 暂存区 版本库概念](#6.工作区 暂存区 版本库概念)

7.本地文件添加到暂存区和提交到版本库

8.文件的修改和还原

9.查看提交的历史版本信息

10.版本差异比较

11.删除文件

12.本地版本管理设置忽略目录

13.远程git仓库介绍

14.创建远程仓库

15.本地仓库中项目推送到远程仓库

16.将远程仓库内容克隆到本地

17.克隆应用场景

18.生成rsa密钥对

19.设置本地ssh秘钥

20.远程仓库ssh公钥设置

21.使用ssh地址进行仓库操作注意事项

22.分支介绍

23.分支的切换

24.合并分支和解决冲突

25.往远程非空仓库推动本地仓库内容

26.git提交代码操作

27.protobu部署


1.知识点概述

1.1. 版本控制系统

  • 集中式版本控制系统

> 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。

>

> 集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,那就GG了.

2.版本控制工具作用

3.git和SVN

> 版本库又名仓库,英文名**repository**,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原"。

2.1 概念

  • 工作区

  • 用户自己创建的目录 -> 存放源代码

  • 本地的版本库也需要放到工作区中

  • 每个工作区中都可以创建一个版本库

  • 只有工作区的`新文件`才需要添加到暂存区

  • 版本库

  • 就是一个目录: 名字-> .git

  • 管理用于提交的代码

  • 暂存区

  • 首先创建新文件 -> 在工作区 (和版本库没有关系)

  • 将新文件添加到本地仓库中 -> 新文件被保存在了暂存区 (还是没有进行版本管理)

  • 将暂存区数据提交到版本库 -> 这时候就可以进行版本管理了

  • 暂存区也是一个目录: stage/index

4.git介绍

5.git安装

创建版本库

  • 在工作区中鼠标右键

!1566526442145(assets/1566526442145.png)

!1566526474770(assets/1566526474770.png)

!1566526548563(assets/1566526548563.png)

  • 添加新文件

  • 在工作区右键菜单

!1566528567183(assets/1566528567183.png)

!1566528599191(assets/1566528599191.png)

6.工作区 暂存区 版本库概念

7.本地文件添加到暂存区和提交到版本库

8.文件的修改和还原

9.查看提交的历史版本信息

10.版本差异比较

11.删除文件

12.本地版本管理设置忽略目录

13.远程git仓库介绍

14.创建远程仓库

15.本地仓库中项目推送到远程仓库

16.将远程仓库内容克隆到本地

17.克隆应用场景

18.生成rsa密钥对

19.设置本地ssh秘钥

20.远程仓库ssh公钥设置

21.使用ssh地址进行仓库操作注意事项

22.分支介绍

23.分支的切换

24.合并分支和解决冲突

25.往远程非空仓库推动本地仓库内容

  • 远程仓库设置公钥

  • 进入当前用户的设置界面

!1566545689936(assets/1566545689936.png)

!1566545737164(assets/1566545737164.png)

!1566545824011(assets/1566545824011.png)

  • 使用ssh地址遇到的问题

!1566546069055(assets/1566546069055.png)

```shel

解决方案: 需要修改tortoisegit 使用的 ssh工具

需要在 tortoisegit 设置窗口中进行修改

```

  • 默认的路径

!1566546228805(assets/1566546228805.png)

  • 修改后的路径

!1566546372033(assets/1566546372033.png

26.git提交代码操作

6.1 创建分支

!1566547011380(assets/1566547011380.png)

!1566547074035(assets/1566547074035.png)

6.2 切换分支

!1566547131012(assets/1566547131012.png)

!1566547316804(assets/1566547316804.png)

6.3 合并分支

> 两个分支进行合并(master, new分支), 最终要合并到那个分支(master), 就先切换到那个分支(master), 切换完成之后, 在选择把哪个分支(new分支)合并到当前分支(master)

!1566548777614(assets/1566548777614.png)

!1566548823482(assets/1566548823482.png)

6.4 解决冲突

!1566549020854(assets/1566549020854.png)

!1566549064722(assets/1566549064722.png)

27.protobu部署

直接推送 -> 失败

!1566549817839(assets/1566549817839.png)

> 失败的原因:

>

> - 远程仓库不是空的

> - 有一个默认分支, `master`

> - 本地仓库, 不是空的

> - 有一个默认分支, `master`

> - 远程仓库和本地仓库默认分支名字相同, 但是这两个分支没有任何关系

> - 没有关系的分支进行合并 -> 失败

  • 解决方案

> 1. 将远程仓库拉取到本地(pull)

> - 拉取: 直接将远程仓库分支中的信息和本地分支进行合并

> - 获取: 将远程仓库分支复制到本地的另外一个分支中, 不会合并

> - 分支名字: fetch_head

> 2. 将两个分支进行强行合并

> 3. 将本地分支数据推送动到远程仓库

  • 通过进行获取操作, 得到新分支`FETCH_HEAD`

!1566550553280(assets/1566550553280.png)

  • 合并分支: 得到的新分支`FETCH_HEAD`分支合并到本地`master`分支

!1566550645559(assets/1566550645559.png)

!1566550709001(assets/1566550709001.png)

  • 将本地仓库推动到远程仓库

!1566550772679(assets/1566550772679.png)

8. 使用最多的场景

> 远程仓库分支和本地仓库分支有关系的情况, 该如何操作?

>

> - 本地:

> - 修改代码提交到本地仓库

> - 提交到远程仓库

> - 不能直接提交

> - 在推送之前应该将远程仓库代码`拉取`到本地

> - 进程代码合并

> - 有可能冲突 -> 手动解决冲突

> - 将新的代码推动到远程仓库

相关推荐
eggwyw7 分钟前
C++相交链表和反转链表详解
开发语言·c++
杜 硕7 分钟前
从零开始的C++生活——第六讲——02
c++·算法·生活
小超人诞生日记24 分钟前
C++ STL 反向迭代器:从源码框架到适配器实现
c++·算法
青少儿编程课堂33 分钟前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园成语接龙大挑战解析
c++·python·算法·bfs·信息学竞赛
小贾要学习43 分钟前
【C++后端开发项目】Reactor 模型 / C++ 仿写 muduo HTTP 服务器:让底层网络库真正跑起网页
linux·服务器·c++·http·网络编程·muduo·reactor模型
Z21-X2 小时前
云原生运维实战笔记:华为云存储类服务全景解析——EVS、OBS、SFS与CBR深度实践
运维·笔记·学习·云原生·华为云
A7bert7772 小时前
【MobileSAM部署至RK3588】环境适配→转换RKNN→开发板部署
c++·人工智能·深度学习·目标检测·ubuntu
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会C/C++考级:分层图最短路解析
c++·python·算法·bfs·信息学竞赛
FlightYe12 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
by2099913 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享