告别Git恐惧症!一套课程搞定Win/Mac/Linux三端配置与核心原理

一、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 的对象模型是其版本控制能力的核心,通过四种基本对象(blobtreecommittag)实现对代码历史的追踪和管理。这些对象均以 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 流程等内容和小伙伴们同步。

相关推荐
Shin_chan33 分钟前
Linux 内核史诗级提权漏洞:CVE-2026-31431 复现与分析
github
xyx-3v3 小时前
Zynq-7000架构简介
架构
中冕—霍格沃兹软件开发测试3 小时前
区块链交易最终一致性测试的核心挑战与实践框架
微服务·架构·单元测试·区块链·集成测试·旅游
Python私教3 小时前
如意Agent六边形架构改造(一):从单体巨石到端口适配器
架构
CoderJia程序员甲3 小时前
GitHub 热榜项目 - 日榜(2026-05-03)
ai·大模型·llm·github·ai教程
twc8293 小时前
全链路压测的环境复杂性:网络架构、应用架构与性能影响因素全解析
网络·软件测试·架构·性能测试·全链路压测
yyuuuzz4 小时前
aws 基础认知与实践注意点
运维·服务器·网络·云计算·github·aws
yoyo_zzm4 小时前
Laravel10.x新特性全解析
数据库·mysql·架构
冯诺依曼的锦鲤4 小时前
从零实现高并发内存池:TCMalloc 核心架构拆解
c++·学习·算法·架构
nvd114 小时前
深度解析:Kong Hybrid 模式与 KIC (Gateway API) 架构演进与核心异同
架构·gateway·kong