Git 学习笔记 1

参考:极客时间 玩转Git三剑客

1. Git

1.1 初始化

  • username email
  • 保证变更信息能够溯源
  • Code Review
  • local 某个仓库生效
  • global 全局生效
  • System 对系统所有登录用户有效
  • config --list 显示配置信息

1.2 基本操作流程

  • git init 初始化一个工作区
  • git local 可以设置本地文件
  • git 提交流程 先 add 再 commit
  • git status 查看当前状态
  • git log 查看日志
  • Git 工作区和暂存区
  • git add -u 将已经跟踪了的文件进行保存
  • 先在工作目录修改 再保存到暂存区 最后进行提交

1.3 Git 文件重命名

  • 问题: 如果直接重命名,需要删除原有文件,然后将新的文件进行添加,比较麻烦
  • git reset --hard 回退操作
  • git mv src tar 直接修改文件名

1.4 Git log 查看版本历史

  • git log --oneline 简洁查看
  • git log -n4 查看最近4条记录
  • git branch -v 查看本地分支
  • git log --all 所有分支的版本
  • git log --graph 查看版本演进图
  • git help 可以查看相关详细内容

1.5 gitk 图像版本查看工具

1.6 .git 目录探秘

Git .git 目录文件结构
  • HEAD 一个指针 指向了当前的分支


    HEAD 信息
  • config 当前仓库的相关信息 git local 就是修改了当前仓库的 config 文件


    Config 信息
  • refs/


    refs 目录结构

    其中 head/ 就是指针 tags/ 是重要的里程碑


    refs/heads/ 中的文件及内容

    master 中的内容是一个 commit 类型,是一个指针
    tags/ 中存放的也是 commit 的指针
  • objects/ 目录


    objects 目录下的内容

    object 中的内容是 tree 和 blob

  • git cat-file -t 可以查看 hash 值对应的文件 类型

1.7 commit tree blob 三种对象

三种文件之间的对应关系

一个 commit 对应一个 tree
tree 是一个文件内容变化的状态树
blob 是具体的某个文件 和文件名没有关系,只要内容相同,就是同一个 blob,节省了存储空间

$ git cat-file -p xxx 可以查看文件的类型

cat-file 查看文件

实践 找到 Tree 的个数

你可能感兴趣的:(Git 学习笔记 1)