一、Windows11/macOs/Linux 全平台安装Git
1、Windows11/macOs/Linux 全平台安装Git服务
windows/mac 用户最简单就是去官网安装包,安装时执行下一步操作即可。
bash
#centos7.X 版本安装
sudo yum install -y git
#centos 8.x 版本
sudo dnf install git
#Ubuntn 系列
sudo apt-get update
sudo apt-get install git
2、验证是否安装成功。
bash
git --version
git version 1.8.3.1
$ git --version
git version 2.37.0.windows.1
二、Git初始化配置
Git 配置级别:本地、全局、系统 ,本地优先级大于全局 ,全局大于系统 (local > global > system) 。
bash
#全局设置
git config --global user.name "stark"
git config --global user.email "15117995393@126.com"
#本地配置
git config --local user.name "changbao"
git config --local user.email "changbao@126.com"
#查看
git config --list
git config --local --list
#启动颜色
git config --global color.ui auto
.gitignore
是 Git 版本控制系统中用于指定需要忽略的文件或目录的配置文件。它能防止不必要的文件(如编译产物、日志、IDE 配置文件等)被提交到代码仓库,保持仓库清洁。
忽略文件是非常必要的设置环节,如果版本库过大,推送代码的时候提示Push rejected for repository size exceeds limit.
,说明Git仓库需要优化了。
三、Git 工作目录、暂存区、本地仓库
Git仓库是一个完整的项目版本控制系统,它包含了项目的所有文件、历史记录和版本信息。仓库是Git的核心概念,所有的版本控制操作都在仓库中进行。
仓库的类型:本地仓库、远程仓库、裸仓库。
工作目录、暂存区、本地仓库的常用操作命令,初始化git 裸仓库命令 git init project
bash
工作目录 → [git add] → 暂存区 → [git commit] → 本地仓库
git add files #添加文件到暂存区
git commit -m "添加暂存区" #提交暂存区文件到本地仓库
git reset --hard #还原暂存区文件
git mv git.txt git.log # git变更文件名
git log -n4 --graph # 查看git历史记录
四、Git对象模型
Git 的对象模型是其版本控制能力的核心,通过四种基本对象(blob
、tree
、commit
、tag
)实现对代码历史的追踪和管理。这些对象均以 SHA-1 哈希值 作为唯一标识,存储在 Git 仓库的 .git/objects
目录中,且内容一旦创建就不可修改(修改会生成新对象)。
bash
commit对象 → tree对象 → blob对象(文件内容)
↓ ↓
tag对象 子tree对象 → blob对象(文件内容)
先查看commit 中的md5、查询出commit中包含的内容,如下图当前的 commit 包含tree、parent、author、committer
bash
[stark@localhost git_test]$ git log
commit 1239f65c0254e020e496e56906eb9dd7672e0cd0
Author: changbao <changbao@126.com>
Date: Mon Oct 6 12:28:32 2025 +0800
Add file
bash
[stark@localhost git_test]$ git cat-file -p 1239f65c0254e020e496e5
tree 2c134fa6eca77335f2a97dacdf23a82baa8bd98f
parent e3e3f77673d2951884143b71f720f48ac275445f
author changbao <changbao@126.com> 1759724912 +0800
committer changbao <changbao@126.com> 1759724912 +0800
继续追踪tree中包含了 git.txt 、index.html两个静态文件
bash
# git cat-file -p 查看内容
# git cat-file -t 查看类型
[stark@localhost git_test]$ git cat-file -p 2c134fa6eca77335f2a97dacdf2
100644 blob 5664e303b5dc2e9ef8e14a0845d9486ec1920afd git.txt
100644 blob dcaf71693e4a4e96739438640406f4f66c7a2dd4 index.html
Git更够快速响应、高性能和高效主要是得益于Git对象模型的关系,同一个blob 的 SHA-1 哈希值 相同,不会重复创建,保证Git仓库的体积,Git会自动选择足够长度的短哈希值来保证唯一性
bash
# 完整的SHA-1哈希值
$ git log
commit 58d216bb3808e38d69b21a72ecbde4a730a3d61d (HEAD -> master, origin/master, origin/HEAD, github/master)
Author: stark <15117995393@126.com>
Date: Thu Oct 9 09:07:27 2025 +0800
# 短哈希值(前7位)
58d216b
如果想深入了解Git对象模型的关系,我准备好了AI搜索词:
bash
请用 Mermaid 语法帮我画一个git对象模型 blob、tree、commit 之间的关系图,包括以下步骤
1、commit中包含的tree、parent、author和 committer、size
2、tree里包含子tree和blob
之后会有关于Git和Github的同步、掌握 Git 的高级使用技巧、GitHub 进行团队项目代码管理 GitLab 完成简单的 DevOps 流程等内容和小伙伴们同步。