Git&GitHub使用学习记录(三)
一. 分支管理
1.什么是分支
在版本控制过程中,使用多条线同时推进多个任务

2.分支的好处
同事并行推进多个功能开发,提高开发效率
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可
3.分支操作
(1) 查看分支
git branch -v
效果:

(2) 创建分支
git branch [分支名]

(3) 切换分支
git checkout [分支名]

(4) 合并分支
第一步:切换到接受修改的分支(被合并,增加新内容),例如:要想将hot_fix修改的内容合并到主干上,就必须先切换到主干上
git checkout [被合并分支名]
第二步:执行merge命令
git merge [有新内容分支名]
解决冲突
冲突表现:

冲突的解决:
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:
git add [file name]

第四步:
git commit -m "日志信息"
注意:此时commit一定不能带具体文件名

二.Git基本原理
1. 哈希

哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:
(1) 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
(2) 哈希算法确定,输入数据确定,输出数据能够保证不变
(3) 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
(4) 哈希算法不可逆
Git底层采用的是SHA-1算法。
哈希算法可以被用来验证文件。原理如下:

Git就是靠这种机制从根本上保证数据完整性
2. Git保存版本的机制
2.1 集中式版本控制工具的文件管理机制
以文件变更列表的方式存储信息。这类系统将它们保存的信息看做是一组基本文件和每个文件随时间逐步累积的差异。

2.2 Git的文件管理机制
Git把书简看作是小心文件系统的一组快照。每次提交更新是Git都会对当前的全部文件制作一个快照并保存这个快照的索引。为了搞笑,如果文件没有修改,Git不再重新存储改为年检,而是只保留一个链接指向之前存储的文件。所以Git的工作方式可以称之为快照流。

2.3 Git文件管理机制细节
Git的"提交对象"

提交对象及其父对象形成的链条

2.4 Git分支管理机制
2.4.1 分支的创建
Git通过信件指针的方式,直接指向一个新的版本。如下图
文件用父对象的方式让各个文件联系在一起。一开始只有master,HEAD指针指向master。
创建一个分支,也就是创建了一个指针testing,指向最新的版本即可,效率很高。
而SVN则是那整个文件系统复制给一个新的用户

2.4.2 分支的切换
对于分支的切换,也就是指针的变化。一开始HEAD指针指向master,如果要切换分支,直接将HEAD指针指向testing分支即可。
不论分支如何改动,都不会影响master,反之也是一样。




浙公网安备 33010602011771号