Git原理

Git文件管理原理

哈希

可以把哈希理解为一个系列的加密算法,哈希算法有许多种,各个不同的哈希算法虽然加密强度不同,但是都具备以下几个共同点:

  1. 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
  2. 哈希算法确定,输入数据确定,输出数据能够保证不变
  3. 哈希算法确定,输入数据有变化,就算只有非常非常小的变换,输出数据一定有变化,而且通常变化很大。
  4. Git 底层采用的是SHA-1 算法。
  5. 哈希算法可以被用来验证文件。原理如下图所示:Git就是采用Hash算法保证文件的完整性,只要发生一点点的变化都可以察觉到。
    在这里插入图片描述

Git分支管理原理

概念

Git中版本控制以及分支管理都离不开最为重要的HEAD指针,由这个指针指向具体的哪一个支线上,而这个支线又会指向某一个版本快照。当我们进行 git reset 前进后退的时候实际上就是操作当前Master指针指向不同的文件快照索引。从而实现文件内容随着版本而变化。当我们第一次初始化仓库 git init的时候就会生成第一个支线:master。
在这里插入图片描述

创建分支

我们在通过 git branch [创建分支的名字] 命令创建分支的时候,其实就是生成了 一个分支名字指针。我们切换分支的时候 其实就是将HEAD这个指针指向了分支。从而实现分支切换 此处可以将HEAD,和支线的名字都理解为指针(便于理解)
在这里插入图片描述

切换分支

在这里插入图片描述

修改分支

在修改分支内容的时候,比如会生成 87ab2 索引值,那么当前的testing指针会指向 87ab2 ,HEAD 指向 testing。所以当前工作区可以看到87ab2的内容。此时master还是指向f30ab文件内容,对于分支的修改主线是不可见的。Git就是采用这种方式完成对分支的管理。这也是为什么Git 比 svn速度快的原因。他仅仅是移动指针而已
在这里插入图片描述

切到主线

在这里插入图片描述

SSH使用方式

介绍

因为现在大部分计算机都是Win10系统的,Win10可以帮助我们在Windows下管理凭据,将GitHub上的用户名和密码保存起来。如果是Win7的系统是没有这个功能的,需要每次和远程仓库交互的时候都录入用户名和密码,有点繁琐。所以需要SSH方式进行交互
在这里插入图片描述

在GitHub上已经提供了SSH的地址方式,我们只需要在本地生成SSH密钥,然后再GitHub上将生成的密钥管理起来。就可以使用SSH地址与远程仓库交互。

在这里插入图片描述

生成密钥

ssh-keygen -t rsa -C zhzhouq9@163.com
注意 -C 是大写的,后面是登录GitHub的邮箱
使用 cd ~ 进入当前计算机用户目录下,使用生成密钥的命令。之后会有部分冒号出现,不需要管直接回车使用默认值就可以了。
在这里插入图片描述
最终的命令行窗口:
在这里插入图片描述
会在用户目录下生成.ssh目录,保存公钥和私钥。使用记事本进入id_rsa.pub文件将其公钥复制一份。
在这里插入图片描述
在这里插入图片描述

GitHub操作

进入GitHub->settings->点击SSH and GPG keys
在这里插入图片描述
选择 New SSH key
在这里插入图片描述
将复制的内容粘贴进去,Title可以随意写
在这里插入图片描述

在这里插入图片描述

本地操作

然后将GitHub上仓库的SSH地址复制下来,我们在自己本地GitlocalStudy目录中打开Git命令行窗口,我们将SSH地址起个别名添加到本地库。

在这里插入图片描述
此时就添加好了ssh方式的远程仓库别名
在这里插入图片描述
接下来我们修改某一个文件–>>add–>>commit–>>push。
push的时候选择ssh别名的远程仓库即可完成操作。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Eclipse生成密钥

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐