Git 入门指南:从 0 到 1 掌握版本控制

🔥个人主页: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.Linux系统(CentOS/Ubuntu)

[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三大核心区域:工作区、暂存区、版本库

[五、Git 实战:10 分钟完成"本地→远程" 全流程](#五、Git 实战:10 分钟完成“本地→远程” 全流程)

[5.1 添加文件到本地仓库(工作区→暂存区→版本库)](#5.1 添加文件到本地仓库(工作区→暂存区→版本库))

[5.2 查看历史提交文件信息](#5.2 查看历史提交文件信息)

[5.3 查看.git文件](#5.3 查看.git文件)

结尾​


前言:

你是否有过这样的经历?改了半天的论文,不小心删掉关键段落却找不回;和同事一起做方案,每人发一个 "最终版",最后分不清哪个是最新的;电脑重装系统,没备份的项目文件直接消失...... 这些看似小事的 "文件灾难",其实都源于缺少一套科学的版本管理方法。​

而 Git,就是解决这些问题的 "神器"。但很多新手一听到 "命令行""仓库""分支" 就打退堂鼓,觉得它复杂难学。其实不然 ------Git 的核心逻辑很简单,只要掌握 "记录修改、同步内容" 的核心流程,就能应对 80% 的日常需求。​

这篇指南专为零基础者设计,没有复杂的理论堆砌,只有一步步的实操说明:从 3 分钟安装 Git,到搞懂 "工作区 / 暂存区 / 仓库" 的关系,再到完成 "本地项目推送到远程" 的全流程,甚至帮你避开新手最容易踩的坑。跟着做,你会发现:原来 Git 入门,真的没那么难。​

如果你是程序员、设计师,或是经常需要修改文件的人,一定遇到过这些问题:​

  1. "昨天改的代码不小心删了,怎么恢复?"
  2. "和同事一起改同一个文件,改着改着就乱了"
  3. "想回溯到上周的文档版本,却找不到备份"

这时候,Git 就能帮你解决所有 "版本管理" 的烦恼。今天就带大家从 0 开始,轻松入门 Git


一、先搞懂:Git 是什么?为什么要用?​

1. Git 的本质​

Git 是一款分布式版本控制系统,简单说就是:​

  • 记录文件的每一次修改(像 "时光机",能随时回溯历史版本)
  • 支持多人协作(每个人的修改都能有序合并,不冲突)
  • 本地就能操作不用依赖网络,只有需要同步时才连远程仓库)

2. 为什么非要学 Git?​

  • 避免 "文件灾难":误删、改乱文件时,能一键恢复到之前的版本
  • 多人协作必备:团队开发项目时,不用再发 "最终版_最终最终版_v3.docx" 这种混乱文件
  • 职场刚需:几乎所有互联网公司都用 Git 管理代码,会 Git 是基础技能

注意:

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


二、第一步:安装 Git(3 分钟搞定)​

Git 支持WindowsLinux,按系统选对应的方法:​

1. Windows 系统​

  1. 打开Git 官网下载页,自动下载适配版本
  1. 双击安装包,一路 "Next"(默认选项足够用,不用改)
  1. 安装完成后,右键点击桌面,出现 "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:单个文件添加

  1. 首先在该路径下创建一个文件例如:touch ReadMe
  2. 在文件里面添加内容vim ReadMe例如:"Hello git"
  3. 将文件add到暂存区:git add ReadMe
  4. 将文件提交到版本库: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:批量提交多个文件

  1. 再在当前路径下新建 3 个文件:touch file1 file2 file3
  2. 分多次添加到暂存区:git add file1 file2 file3(或用**git add .**添加当前目录所有文件)
  3. 一次性提交到版本库: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

  1. 查看完整的历史文件信息:git log显示作者,提交时间,提交说明,和commit id(每个commit都有对应的版本号)
  2. 简介版表示: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

注意:

  1. 我们观察可以发现有 index ,我们 add 后的文件都在这个index暂存区存放
  2. 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 入门,真的只是 "动手做一次" 的事儿。如果后续遇到新问题,也可以回头翻看这篇指南,或者尝试进阶内容。版本管理的大门已经为你打开,接下来就交给实践吧!

相关推荐
麦芽糖02197 小时前
本地已有项目首次上传到gitee
gitee
云空9 小时前
《VPython 相关的 GitHub 仓库地址清单》
github·可视化·vpython
Jeanyia10 小时前
GitLab 配套 Git 常用命令
git·gitlab
静止了 所有的花开11 小时前
Ubuntu 26.04 静态 IP 配置不生效解决方法
linux·ubuntu·静态ip
承渊政道11 小时前
KES专业技能包发布:覆盖数据库开发、迁移与运维全流程
运维·数据库·gitee·数据库开发·金仓数据库
qq_2676128912 小时前
Gitee CodePecker行业场景化落地指南:金融、车联网与IoT双引擎选型与工程化路径
前端·gitee·自动化
小弥儿12 小时前
GitHub今日热榜 | 2026-08-14:OSINT情报工具回流,本地AI赛道升温
人工智能·学习·开源·github
71777713 小时前
开源协同底座支撑具身智能:Gitee 企业版与 AGIROS 共建机器人操作系统基础设施
机器人·gitee·开源
10mAh13 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
71777714 小时前
如何搭建信创研发交付体系?Gitee DevOps 国产化适配、安全与流水线能力解析
安全·gitee·devops