接上一篇……Git&GitHub学习(二)
4.Git基本原理
4.1.哈希算法
harsh加密算法特性有三:
- 无论输入的数据量有多大,在同一harsh算法下,得到的均为等长密文。
- 在同一harsh算法下,若是输入的数据是确定的(即没有任何改变),则输出的数据也不变,若是变动了(哪怕仅仅只是一个标点),输出的数据也会有巨大的变化。
- 这个过程是不可逆的。即密文经过加密算法不可得到明文。
- 【作用】另外,这些特性可用于比对文件是否受损。
【对作用的解释】原文件by harsh算法 SHA-1得到—>密文A;原文件通过网络传输下载至本地;下载得到的文件by harsh算法 SHA-1 得到—>密文B;比对密文A与密文B是否一致,若不一致,则文件在下载过程中受损。
4.2.git版本控制
git对版本的控制是通过拍快照的形式,详情如下:
在版本1中,创建两个文件,而后只对文件2做了修改,那么版本2中,保存了文件1的快照,即有一个指向原文件1的指针,而文件2为更新后的版本。
4.3.分支管理的机制
创建本地库时会自动生成一个主干分支master,而后在某一版本上创建新分支newBranch,则此分支将会指向当前版本,而非复制一份,事实上,master分支亦是指向当前版本,在这种情况下,在分支master上更新版本后,master将不再与newBranch指向同一版本,要在哪个分支上进行操作,只需要改变HEAD的指向即可。
补充:每次提交均产生一个harsh值,版本间具有父子关系。
使用git的一般过程为:
mkdir xx #创建新目录
git init #初始化本地库
vim xxx.txt #创建文件
git add xxx.txt #将文件从工作区提交至暂存区
git commit xxx.txt #将文件从暂存区提交至本地库