学习的两大目标
1. 技术目标,学习一些基础的技术问题
- 操作原理与常见区域
掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义
深刻学习Git的所有操作,过程和原理,理解Git常见的区域的含义 - 版本管理
掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操作⽅式与背后操作原理 - 分支管理
从分⽀创建,切换,合并,删除的整个⽣命周期,灵活进⾏各种场景下的分⽀管理,学习常⻅分⽀管理策略 - 仓库管理
掌握Git远程仓库与本地仓库,结合版本管理与分⽀管理,做到基于分⽀级的个⼈级开发 - 分布式版本控制
理解分布式版本控制系统,学习远程仓库与本地仓库的交互操作,掌握多⼈协作开发模式
2. 协作目标
- 学习企业级常⻅分⽀策略(master/release/develop/feature/hotfix等),
- 理解不同公司,不同环境下适合的分⽀模型。
- 结合案例,引⼊⼯程师,测试⼈员,技术经理等⻆⾊,展现项⽬开发过程的全貌,深刻理解开发的整体流程,俯视Git在其中的作⽤
使用情景
- 如果你的老板或者导师,要产出一款产品,需要你帮忙写一个设计文档,当你将写好的设计文档提交时,大概率不会一次成功,老板或导师会要求你下去修改,这样可能就有多次修改
- 不过可能老板第二次修改的文档看都没看就让你下去修改,当改了五次之后,老板又说你的第一次的文档是最符合预期的
- 当遇到这种情况,有没有办法拿到设计文档的第一次版本呢?
答案是不可以的,因为你是对这一份文档进行多次修改,这份文档保存的是第五次修改的内容,那你是没有办法拿到第一次修改的版本的
那这样的话你的工作可能就完不成了 - 当下一次又遇到这样的工作时,一般老板是不会认同你的第一份文档,会叫你去修改,对这个设计文档起名叫V1
这个时候你是不会对V1文档去进行修改的,而是把内容进行复制,拿到副本进行内容的修改,命名成设计文档V2.这个时候,不管老板要的是第一版还是第二版都能直接拿给他
1. 做法分析
第一种做法
对同一个文档进行多次修改
没有办法对不同的版本进行管理
没有办法拿到之前版本的内容
第二种做法
对一个文档进行多个版本的管理
但是有一个非常严重的问题
现在只有5个版本的文档,但是如果这个文档一直升级,到二十几甚至上百个版本,你倒是也能拿出中间的版本,但是如果你的老板要你拿出添加了某个功能之后的文档,你能不能知道在这一百个版本里面,哪个版本是需要的版本?
版本维护的问题
随着版本的不断增多,维护好版本是很有挑战的
各自的版本修改的内容是什么,是否知道
2. 解决方案
-
使用版本控制器
可以解决上面描述的问题
可以了解到一个文件的所有的历史,可以维护到这个文件的发展过程
可以记录在一个项目中的代码文件的每一次的改动和版本的迭代和管理
记录每次的修改以及版本迭代的一个管理系统 -
Git就是目前最主流的版本控制器
Git可以控制电脑上所有格式的文件
对于开发人员来说,可以帮助管理软件开发过程中的源代码文件
3. 具体场景
- 文本文件
现在有一个文档,里面是有一些内容的
这时对文档进行修改,在第二行新加一些单词git
Git就能帮我们把修改的内容记下来
会记第二行新增“git” - 二进制文件
图片、视频- 没办法跟踪文件具体的变化,只能把这些二进制文件每次改的内容串起来
- 可以知道图片文件由100kb->200kb
- 具体修改的内容没有办法知道
- 没办法跟踪文件具体的变化,只能把这些二进制文件每次改的内容串起来