
🔥个人主页:Cx330🌸
❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》
《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔
🌟心向往之行必能至
🎥Cx330🌸的简介:

目录
[一、先搞懂:Git 是什么?为什么要用?](#一、先搞懂:Git 是什么?为什么要用?)
[1. Git 的本质](#1. Git 的本质)
[2. 为什么非要学 Git?](#2. 为什么非要学 Git?)
[二、第一步:安装 Git(3 分钟搞定)](#二、第一步:安装 Git(3 分钟搞定))
[1. Windows 系统](#1. Windows 系统)
[2.1 CentOS版本](#2.1 CentOS版本)
[2.2 Ubuntu版本](#2.2 Ubuntu版本)
[三、Git 本地仓库初始化与配置](#三、Git 本地仓库初始化与配置)
[3.1 初始化](#3.1 初始化)
[3.2 单仓库配置name与email](#3.2 单仓库配置name与email)
[3.3 所有仓库配置name与email](#3.3 所有仓库配置name与email)
[五、Git 实战:10 分钟完成"本地→远程" 全流程](#五、Git 实战:10 分钟完成“本地→远程” 全流程)
[5.1 添加文件到本地仓库(工作区→暂存区→版本库)](#5.1 添加文件到本地仓库(工作区→暂存区→版本库))
[5.2 查看历史提交文件信息](#5.2 查看历史提交文件信息)
[5.3 查看.git文件](#5.3 查看.git文件)
前言:
你是否有过这样的经历?改了半天的论文,不小心删掉关键段落却找不回;和同事一起做方案,每人发一个 "最终版",最后分不清哪个是最新的;电脑重装系统,没备份的项目文件直接消失...... 这些看似小事的 "文件灾难",其实都源于缺少一套科学的版本管理方法。
而 Git,就是解决这些问题的 "神器"。但很多新手一听到 "命令行""仓库""分支" 就打退堂鼓,觉得它复杂难学。其实不然 ------Git 的核心逻辑很简单,只要掌握 "记录修改、同步内容" 的核心流程,就能应对 80% 的日常需求。
这篇指南专为零基础者设计,没有复杂的理论堆砌,只有一步步的实操说明:从 3 分钟安装 Git,到搞懂 "工作区 / 暂存区 / 仓库" 的关系,再到完成 "本地项目推送到远程" 的全流程,甚至帮你避开新手最容易踩的坑。跟着做,你会发现:原来 Git 入门,真的没那么难。
如果你是程序员、设计师,或是经常需要修改文件的人,一定遇到过这些问题:
- "昨天改的代码不小心删了,怎么恢复?"
- "和同事一起改同一个文件,改着改着就乱了"
- "想回溯到上周的文档版本,却找不到备份"
这时候,Git 就能帮你解决所有 "版本管理" 的烦恼。今天就带大家从 0 开始,轻松入门 Git

一、先搞懂:Git 是什么?为什么要用?
1. Git 的本质
Git 是一款分布式版本控制系统,简单说就是:
- 记录文件的每一次修改(像 "时光机",能随时回溯历史版本)
- 支持多人协作(每个人的修改都能有序合并,不冲突)
- 本地就能操作(不用依赖网络,只有需要同步时才连远程仓库)
2. 为什么非要学 Git?
- 避免 "文件灾难":误删、改乱文件时,能一键恢复到之前的版本
- 多人协作必备:团队开发项目时,不用再发 "最终版_最终最终版_v3.docx" 这种混乱文件
- 职场刚需:几乎所有互联网公司都用 Git 管理代码,会 Git 是基础技能

注意:
Git仅能跟踪文本文件的改动(如代码,txt文件),可以清晰的显示修改细节。对于图片,视频等二进制文件,虽然也能控制,但无法跟踪文件的变化,只能看到内存大小的变化

二、第一步:安装 Git(3 分钟搞定)
Git 支持Windows和Linux,按系统选对应的方法:
1. Windows 系统
- 双击安装包,一路 "Next"(默认选项足够用,不用改)
- 安装完成后,右键点击桌面,出现 "Git Bash Here" 就说明成功了(点击打开,这是 Git 的命令行工具)


2.Linux系统(CentOS/Ubuntu)
2.1 CentOS版本
bash
# 1. 安装 Git,普通账户需要sudo提权,root不用
[root@VM-4-4-centos ~]# (sudo) yum -y install git
# 2. 验证安装是否成功以及查看Git版本(显示版本号即成功)
[root@VM-4-4-centos ~]# git --version
2.2 Ubuntu版本
bash
# 1. 安装 Git(系统会提示安装命令,直接执行即可)
sudo apt-get install git -y
# 2. 验证安装
git --version

三、Git 本地仓库初始化与配置
3.1 初始化
创建仓库(目录):
mkdir gitcode
初始化仓库
git init

查看 .git

注意事项:
.git文件里面的内容不能删改!
3.2 单仓库配置name与email
配置name:
git config user.name "姓名"
配置email:
git config user.email "邮箱(qq.com)"
查看配置:
git config -l

重置name与email:
git config --unset user.name/email
3.3 所有仓库配置name与email
配置name:
git config --global user.name "姓名"
配置email:
git config --global user.email "邮箱(qq.com)"
查看配置:
git config -l

发现:user.name和user.email跑到了前面,就说明配置成功了
重置name与email:
git config --global --unset user.name/email
说明:
一台服务器上可以创建多个本地仓库,加--global选项,目的是在当前机器的所有git仓库生效
四、Git三大核心区域:工作区、暂存区、版本库
新手学 Git 最容易懵的是 "文件存在哪里",记住这 3 个区域,逻辑就通了:

- 左侧为工作区,右侧为版本库。Git 的版本库中存了很多东西,其中最重要的就是暂存区。
- 在创建 Git 版本库时,Git会为我们自动创建一个唯一的 master 分支,以及指向 master 的一个指针叫 HEAD。
- 当对工作区新增或修改或删除文件执行git add命令时,暂存区目录树的文件索引会被更新(如图所示).
- 当执行提交操作 git commit 时,master分支会做相应的更新,可以简单理解为暂存区的目录树会被真正写到版本库中
简单流程: 在工作区改文件 → 把修改加到暂存区 → 提交到本地仓库 → 推送到远程仓库
|---------|-------------------------------------|------------|
| 区域 | 作用 | 通俗比喻 |
| 工作区 | 你正在编辑的文件所在的文件夹(比如桌面的 "我的项目" 文件夹) | 你的 "草稿纸" |
| 暂存区 | 临时存放要提交的修改(选一部分文件先 "暂存",不是所有修改都要提交) | 待提交的 "购物车" |
| 版本库 | 存放在你电脑里的完整版本历史(.git文件夹,看不见但很重要) | 你家里的 "档案柜" |
五、Git 实战:10 分钟完成"本地→远程" 全流程
5.1 添加文件到本地仓库(工作区→暂存区→版本库)
文件会先在 "暂存区" 暂存,支持单个文件、多个文件或目录的批量操作,具体示例如下:
场景1:单个文件添加
- 首先在该路径下创建一个文件例如:touch ReadMe
- 在文件里面添加内容vim ReadMe例如:"Hello git"
- 将文件add到暂存区:git add ReadMe
- 将文件提交到版本库:git commit -m "add my first file"(注:引号里面的内容不可以随意乱填,一定要描述相关内容)
bash
yhr@VM-24-15-ubuntu:~/gitcode$ cat ReadMe
Hello git
yhr@VM-24-15-ubuntu:~/gitcode$ git add ReadMe
yhr@VM-24-15-ubuntu:~/gitcode$ git commit -m "add first file"
[master (root-commit) c991930] add first file
1 file changed, 1 insertion(+)
create mode 100644 ReadMe
提交成功以后会显示:**1 file changed, 1 insertion(+)**表示一个文件被改变(修改),新增加了1行内容
场景2:批量提交多个文件
- 再在当前路径下新建 3 个文件:touch file1 file2 file3;
- 分多次添加到暂存区:git add file1 file2 file3(或用**git add .**添加当前目录所有文件)
- 一次性提交到版本库:git commit -m "add 3 file"
bash
yhr@VM-24-15-ubuntu:~/gitcode$ touch file1 file2 file3
yhr@VM-24-15-ubuntu:~/gitcode$ la
file1 file2 file3 .git ReadMe
yhr@VM-24-15-ubuntu:~/gitcode$ git add file1
yhr@VM-24-15-ubuntu:~/gitcode$ git add file2 file3
yhr@VM-24-15-ubuntu:~/gitcode$ git commit -m "add 3 file"
[master 746b339] add 3 file
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file1
create mode 100644 file2
create mode 100644 file3
5.2 查看历史提交文件信息
查看所有提交记录命令: git log
- 查看完整的历史文件信息:git log显示作者,提交时间,提交说明,和commit id(每个commit都有对应的版本号)
- 简介版表示:git log --pretty=oneline一行是一个版本以及对应的commit id

5.3 查看.git文件
我们tree .git/ 看一下git的结构
bash
yhr@VM-24-15-ubuntu:~/gitcode$ tree .git/
.git/
├── branches
├── COMMIT_EDITMSG
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
| ├── fsmonitor-watchman.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── pre-merge-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ ├── pre-receive.sample
│ ├── push-to-checkout.sample
│ └── update.sample
├── index
├── info
│ └── exclude
├── logs
│ ├── HEAD
│ └── refs
│ └── heads
│ └── master
├── objects
│ ├── 0d
│ │ └── ec2239efc0bbfabe4078f5357705ca93b5475e
│ ├── 74
│ │ └── 6b339d3058dcf6ea9889b3893c12f9be947a4c
│ ├── c9
│ │ └── 919304ee67dc00138cce7659abc2e2d2ea051c
│ ├── df
│ │ └── 0c1275ea442bead2585c5e398d2dda0b3ec069
│ ├── e1
│ │ └── b507e8332c7e00e1a5dfef2d713279fb380c07
│ ├── e6
│ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│ ├── info
│ └── pack
└── refs
├── heads
│ └── master
└── tags
18 directories, 28 files
注意:
- 我们观察可以发现有 index ,我们 add 后的文件都在这个index暂存区存放
- HEAD 就是我们默认指向 master 分支的指针
bash
yhr@VM-24-15-ubuntu:~/gitcode$ cat .git/HEAD
ref: refs/heads/master
我们来看一下master分支:
bash
yhr@VM-24-15-ubuntu:~/gitcode$ cat .git/refs/heads/master
746b339d3058dcf6ea9889b3893c12f9be947a4c
这一串数字是什么呢?

其实就是我们刚刚最近一次commit的id
objects为Git的对象仓库,里面包含了创建的各种版本库的对象及内容。当执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,就位于".git/objects"目录下,让我们来看看这些对象有何用处
查看版本库对象的内容:git cat-file -p (commit id)
bash
yhr@VM-24-15-ubuntu:~/gitcode$ git cat-file -p 746b339d3058dcf6ea9889b3893c12f9be947a4c
tree df0c1275ea442bead2585c5e398d2dda0b3ec069
parent c9919304ee67dc00138cce7659abc2e2d2ea051c
author yhr <xxxxxxxxx@qq.com> 1764737022 +0800
committer yhr <xxxxxxxxx@qq.com> 1764737022 +0800
add 3 file
可以看到这是我们最近一次的提交
我们可以发现tree后面还跟一堆数字,这是什么呢?我们再来打印出来看一下:
bash
yhr@VM-24-15-ubuntu:~/gitcode$ git cat-file -p df0c1275ea442bead2585c5e398d2dda0b3ec069
100644 blob 0dec2239efc0bbfabe4078f5357705ca93b5475e ReadMe
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file1
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file2
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file3
我们在add ReadMe文件之前在里面写了一段代码,我们在来打印一下0dec2239efc0bbfabe4078f5357705ca93b5475e
bash
yhr@VM-24-15-ubuntu:~/gitcode$ git cat-file -p 0dec2239efc0bbfabe4078f5357705ca93b5475e
Hello git
我们可以发现,我们写的代码打印出来了
结尾
看到这里,你已经掌握了 Git 的核心入门知识 ------ 从安装到实战,从避坑到基本协作,这些内容足以帮你告别 "文件混乱" 的烦恼。
可能有人会说 "记不住命令",但其实不用死记:不确定时回头看 "实战流程",多试两次 "新建文件→提交→推远程",命令就会慢慢变成肌肉记忆。就像学开车,一开始记不清挡位,但开多了自然就熟练了。
现在,不妨打开你的电脑,跟着 "10 分钟实战" 步骤走一遍 ------ 当你 Gitee 上看到自己推送的文件时,会发现:Git 入门,真的只是 "动手做一次" 的事儿。如果后续遇到新问题,也可以回头翻看这篇指南,或者尝试进阶内容。版本管理的大门已经为你打开,接下来就交给实践吧!