文章目录
-
-
- Git版本控制
-
- 知识点01:课程内容大纲与学习目标
- 知识点02:项目开发中的版本问题
- 知识点03:Git的诞生及特点
- 知识点04:Git管理的组成结构
- 知识点05:Git及辅助工具安装
- 知识点06:本地仓库构建几种方式
- 知识点07:Git基本操作--添加、提交
- 知识点08:Git基本操作--修改、还原
- 知识点09:Git基本操作--版本差异比较、回退
- 知识点10:Git基本操作--删除
- 知识点11:添加/提交整个项目
- 知识点12:暂存区的设计
- 知识点13:Git远程仓库
- 知识点14: GitHub远程仓库
- 知识点14: Gitee远程仓库
- 知识点15: 冲突问题
- 知识点16: 分支的功能与分支管理
- 知识点17: 分支合并
- 拓展: DataGrip操作Git
- 拓展: IDEA操作git
- 附录一:创建GitHub账号
-
Git版本控制
知识点01:课程内容大纲与学习目标
#课程内容大纲
版本控制工具Git
#学习目标
了解下git的背景以及作用
了解下git基本使用
知识点02:项目开发中的版本问题
目标:了解项目开发中遇到的开发版本问题
-
举例:你在大学中写论文
- 问题1:直接在一个文件上不断修改,但如果我想回到之前某个版本怎么办?
- 手动的管理和记录每个版本之间的变化
-
问题2:如果我让别人帮我写,我自己也写,我想将别人写的部分和我写的部分合并怎么办?
- 论文有10个部分,10个人来写,我需要合并
- 我觉得有个人写的不好,我要重写它的,再合并
-
问题:所有的操作都在手动管理,极其容易出现错误
-
项目开发会存在同样的问题
- 整个项目由多个人共同开发,每个人开发的模块可能一样也可能不一样
- 不一样:每个人负责不同的 功能模块
- 一样:多个人共同负责一个模块
- 代码会产生多个版本
- 版本如何控制?
- 这个版本中没有这个功能,但是我下个版本想要这个功能,下下一个版本这个功能又不需要了
- 产品
- v1:A、B
- 原来的版本,有A和B两个功能
- v2:A、C
- 去掉了B功能,添加了C功能
- v3:A、B、C
- 添加了B这个功能
- v1:A、B
- 整个项目由多个人共同开发,每个人开发的模块可能一样也可能不一样
-
如何实现多个人共同开发一个项目,能将项目的多个版本进行自由方便的管理
- 甲:今天开发了一个版本,保存这个版本
- 乙:基于甲昨天开发的版本,进行继续开发
- 丙:负责开发另外一个版本
知识点03:Git的诞生及特点
了解Git的诞生背景及特点
-
项目版本管理工具:能自动的将多个版本进行管理存储,类似于快照,多个人共享版本
-
Git诞生:分布式项目管理工具,目前整个行业内最流行最受欢迎的项目版本管理工具
- 开发者:Linus Torvalds
-
Linux的创始人
-
Linux诞生以后,全球很多开发者开发了 很多个版本的Linux,提交给Linus Torvalds
-
Linus Torvalds 将优秀的代码集成在Linux内核中,手动管理所有的代码
-
Linus Torvalds 不喜欢传统的免费CVS等工具,因为这些工具不好用,好用的都收费
-
**Linus Torvalds 先选择了一个商业化的工具BitKeeper **,达成协议可以免费使用
-
于是团队中的一个哥们有个想法:能不能破解这个东西?
-
被发现了:Linus Torvalds 保证不再破解
-
到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结
束,他们收回了免费使用 BitKeeper 的权力
-
两周以后,Linus Torvalds 自己用C语言开发了Git,使用了类似于Linux的管理方式
-
Linus Torvalds :将Linux的版本控制切换到Git上
- Git的开发汲取了其他的版本控制工具的优点,避免了缺点
-
- 开发者:Linus Torvalds
SVN和GIT对比
集中式:SVN
-
所有版本的代码都集中在SVN的服务器上
-
任何一个开发者,都只能连接SVN服务器,下载代码和上传新的版本
-
集中式:所有的开发都围绕SVN服务器为核心
-
缺点
-
必须联网
- 局域网:还是比较快的,但是回家以后就没办法开发了
- 在公司下载好
- 回家开发,只能开发一个版本
- 回到公司上传这个版本
- 互联网:特别慢
- 在任何一个地方连接SVN服务器,进行下载和上传
- 局域网:还是比较快的,但是回家以后就没办法开发了
-
自己无法自动管理多个版本
-
SVN服务器存在单点故障
-
-
分布式:Git
- 去中心化模式
- 优点
- 不需要联网,自己的笔记本就是个本地版本库,直接利用自己的笔记本实现版本的管理
- 自己可以管理任意多个版本
- 不需要担心公共的版本库故障,每个人的本地都有版本库
Git的特点
-
适合于分布式开发,多人可以共同开发,强调个体
-
公共的版本库服务器的压力不会太大
-
速度快、更加灵活
-
任意的开发者之间如果产生冲突也容易解决
-
不需要联网也可以实现多版本管理
知识点04:Git管理的组成结构
掌握Git管理版本的组成结构
- 图示
- 本地版本控制Git服务器
- 工作区【Work Dir】:就是你开发和修改代码的地方
- 暂存区【Index】:临时存放你即将提交的版本的地方
- 所有需要保存的版本必须先添加到暂存区
- 本地版本仓库【HEAD】:本地的版本库,实现本地的版本的管理
- 所有暂存区的版本会被提交到本地版本库
- 远程版本仓库:用于共享项目代码版本
- GitHub: https://github.com/
- Gitee: https://gitee.com/
知识点05:Git及辅助工具安装
实现Git及辅助工具的安装
-
实施
-
需要安装的工具
- Git-2.13.0-64-bit.exe:Windows版本的Git工具安装包
- TortoiseGit-2.4.0.2-64bit.msi:Git的可视化工具安装包
- TortoiseGit-LanguagePack-2.4.0.0-64bit-zh_CN.msi:TortoiseGit工具的汉化包
-
安装Git
- 参考安装文档
-
安装TortoiseGit
- 参考安装文档
-
安装TortoiseGit汉化包
- 参考安装文档
-
知识点06:本地仓库构建几种方式
基于自己的笔记本,在本地操作系统中实现Git本地仓库的构建
step1:准备
-
每个项目都可以基于Git构建版本库,每个项目都可以做版本管理
-
先创建一个目录,再创建三个子目录【三个本地库】
-
本地库只要构建成功就会创建一个 隐藏目录.git
修改配置 打开显示隐藏的项目
step2:构建
方式一:通过Git命令来构建
输入命令: git init
方式二:通过TortoiseGit构建
方式三:通过Git图形化界面构建
知识点07:Git基本操作–添加、提交
实现在Git本地工作区,添加文件到本地仓库
创建文件
添加到暂存区
#添加一个或者多个文件到暂存区
git add [file1] [file2] ...
#添加指定目录到暂存区,包括子目录
git add [dir]
#添加当前目录下的所有文件到暂存区
git add .
#如何嫌命令难记,也可以使用下述的tortoiseGit工具操作
注意啊,这里点确定表示添加到暂存区,点击提交就一步提交到仓库了。
提交到本地库
#前面我们使用 git add 命令将内容写入暂存区。
#git commit 命令将暂存区内容添加到本地仓库中。
#master涉及分支的管理,我们后面细说。
git commit -m