Git基本原理、ssh登录,从视频和实战中总结
Git是一个分布式版本控制工具,官网地址:https://git-scm.com/,安装教程:https://www.bilibili.com/video/BV1pW411A7a5?p=6
# Git的优势
- 大部分操作在本地完成,不需要联网
- 完整性保证(通过hash函数验证文件,避免文件传输时的丢失和损坏)
- 尽可能添加数据而不是删除或修改数据
- 分支操作非常快捷流畅
- 与Linux命令全面兼容
# Git在本地的结构
# Git和代码托管中心
代码托管中心用于维护远程库
- 局域网环境下
- GitLab服务器
- 外网环境下
- Github
- 码云
# 本地库与远程库
团队协作
跨团队协作
# Git基本原理
# 哈希
哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:
- 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
- 哈希算法确定。输入数据确定,输出数据能够保证不变
- 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
- 哈希算法不可逆
Git底层采用的是SHA-1算法,哈希算法可以用来验证文件,通过传输前后文件的哈希值对比来确定目标文件是否有损坏,Git就是靠这种机制从根本上保证数据完整性的。
# Git保存版本的机制
- 集中式版本控制工具的文件管理机制 将每个文件修改的部分进行保存,而不会保存大量重复的内容,当查看版本内容的时候,将之前所有版本修改的内容叠加到源文件内容中。
- Git的文件管理机制 Git把数据看作是小型文件系统的一组快照。每次提交更新时Git都会对当前的全部文件制作一个快照并保存这个快照的索引,如果文件没有修改,则只保留一个链接指向之前存储的文件,Git的工作方式可称之为快照流。
# Git分支管理机制
- 分支的创建 让新创建分支的指针指向master分支指向的对象
- 分支的切换 改变HEAD指针的指向
# SSH登录
当你的电脑没有凭据管理功能的时候,使用https地址进行push操作时每次都要填写用户名密码,配置SSH生成RSA加解密算法的公私钥对,使用ssh地址可以更方便操作,但只能为一个账号设置SSH。
进入当前用户的家目录
cd ~
1生成SSH目录(后面的问题可直接回车,不设密码,以免忘记)
ssh-keygen -t rsa -C "GitHub的邮箱"
1进入.ssh/id_rsa.pub,查看里面的内容
cd .ssh/ll #查看当前文件目录cat id_rsa.pub #查看文件内容
1在GitHub的settings->SSH and GPG keys,进行配置
当配置成功后,在本地git命令行中可以使用GitHub中形成的ssh地址
git remote -v #查看仓库别名git remote add origin_ssh git@github.com:Wine-doubao/wound_detection.gitgit push origin_ssh master
1
如果想要删除之前创建过的SSH目录:
rm -r .ssh/
1
注:详细步骤参考https://cloud.tencent.com/developer/article/1504684