• git学习


    git 流程:

    在这里插入图片描述
    git基本原理
    工作区、暂存区、本地仓库

    1、在执行git init 后创建git本地仓库,生成 .get 文件:

     hooks
      info
      logs
      objects
      refs
      .COMMIT_EDITMSG.awp
      COMMIT_EDITMSG
      config
      description
      HEAD
      index
      ORIG_HEAD
      packed-refs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2、执行git add . 之后,会在objects文件中生产文件:
    在这里插入图片描述

    git cat-file -t a9aae1 查看object文件的类型
    git cat-file -p a9aae1 查看object文件中的内容
    
    • 1
    • 2

    当在工作区有添加文件或修改文件时,执行git add xxx 后,添加和修改的文件通过压缩后形成快照保存到objects中(通过git cat-file -p a9aae1 查看文件可发现内容为添加和修改文件的完整信息(副本))

    objects 中的文件名是通过 对<文件内容+文件类型> 进行hash算法(SHA1)得到,前两位作为第一层目录(a9),剩下的作为第二层的文件名(aae118b1d9…), 所以当工作区的两个文件的文件内容+文件类型相同时,在执行git add . 后在object生成的文件是相同的,因此指向同一个objects文件

    hash算法:把任意长度的输入通过散列算法变换成固定长度的输出:
    类型: MD5(128bit) 、SHA1(160bit)、SHA25(256bit)、 SHA512(512bit)

    echo "文件类型 内容长度\0内容" | shasum   // hash算法得到object文件名
    echo “blob 10\0hello git” | shasum
    
    • 1
    • 2

    在这里插入图片描述

    git ls-files // 查看index文件中的内容(即暂存区的文件目录) 
    git ls-files -s // 查看index文件中的详细内容
    
    • 1
    • 2

    3、git commit -m “xxx”

    回退 git reset

    git reset --soft HEAD~1    回退HEAD(本地仓库),index(暂存区)和工作区不变
    git reset --mixed HEAD~1   回退HEAD(本地仓库)和index(暂存区),工作区不变
    git reset --hard HEAD~1    回退HEAD(本地仓库)、index(暂存区)、工作区
    git reset --hard origin/master 将本地的HEAD、index、工作区回退到和远程的master分支(也可以是其他远程分支)一样 
    
    • 1
    • 2
    • 3
    • 4

    分支管理

    git branch   // 查看分支
    git branch huzw001 // 创建分支huzw001
    git checkout huzw001 // 切换到分支huzw001
    git checkout -b huzw001 // 创建分支并切换到huzw001
    git branch - d huzw001 // 删除分支huzw001
    git merge huzw001 // 将分支huzw001合并到master上
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    git原理
    git对象、blob对象、tree对象、commit对象、tag对象

  • 相关阅读:
    PicGo+Gitee中的404错误解决方案
    【中级网络工程师】下午网络配置题
    CTF-Web(3)文件上传漏洞
    Mac版AndroidStudio常用快捷键(汇总)
    Sampling Area Lights
    5000张高清壁纸大图(手机用),用Python在法律的边缘又试探了一把
    物联网通信-如何基于TCP/IP简要设计业务应用协议(c++案例)
    go~在阿里mse上使用redis.call
    快速了解常用的对称加密算法,再也不用担心面试官的刨根问底
    STM32实战总结:HAL之I2C
  • 原文地址:https://blog.csdn.net/qq_42772400/article/details/128188160