Git简介

2021-7-23 git工具

Git基本原理、ssh登录,从视频和实战中总结

Git是一个分布式版本控制工具,官网地址:https://git-scm.com/,安装教程:https://www.bilibili.com/video/BV1pW411A7a5?p=6

# Git的优势

  • 大部分操作在本地完成,不需要联网
  • 完整性保证(通过hash函数验证文件,避免文件传输时的丢失和损坏)
  • 尽可能添加数据而不是删除或修改数据
  • 分支操作非常快捷流畅
  • 与Linux命令全面兼容

# Git在本地的结构

foo

# Git和代码托管中心

代码托管中心用于维护远程库

  • 局域网环境下
    • GitLab服务器
  • 外网环境下
    • Github
    • 码云

# 本地库与远程库

  1. 团队协作

    foo
  2. 跨团队协作

    foo

# Git基本原理

# 哈希

哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:

  • 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
  • 哈希算法确定。输入数据确定,输出数据能够保证不变
  • 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
  • 哈希算法不可逆

Git底层采用的是SHA-1算法,哈希算法可以用来验证文件,通过传输前后文件的哈希值对比来确定目标文件是否有损坏,Git就是靠这种机制从根本上保证数据完整性的。

# Git保存版本的机制

  1. 集中式版本控制工具的文件管理机制 将每个文件修改的部分进行保存,而不会保存大量重复的内容,当查看版本内容的时候,将之前所有版本修改的内容叠加到源文件内容中。
  2. Git的文件管理机制 Git把数据看作是小型文件系统的一组快照。每次提交更新时Git都会对当前的全部文件制作一个快照并保存这个快照的索引,如果文件没有修改,则只保留一个链接指向之前存储的文件,Git的工作方式可称之为快照流

# Git分支管理机制

  1. 分支的创建 让新创建分支的指针指向master分支指向的对象
  2. 分支的切换 改变HEAD指针的指向

# SSH登录

当你的电脑没有凭据管理功能的时候,使用https地址进行push操作时每次都要填写用户名密码,配置SSH生成RSA加解密算法的公私钥对,使用ssh地址可以更方便操作,但只能为一个账号设置SSH。

  1. 进入当前用户的家目录

    cd ~
    
    1
  2. 生成SSH目录(后面的问题可直接回车,不设密码,以免忘记)

    ssh-keygen -t rsa -C "GitHub的邮箱"
    
    1
  3. 进入.ssh/id_rsa.pub,查看里面的内容

    cd .ssh/ll #查看当前文件目录cat id_rsa.pub #查看文件内容
    
    1
  4. 在GitHub的settings->SSH and GPG keys,进行配置

  5. 当配置成功后,在本地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