Git是目前全球最流行、最强大的分布式版本控制系统,由Linux内核创始人Linus Torvalds于2005年为开发Linux内核而设计。与传统的集中式版本控制系统(如SVN)相比,Git具有分布式架构、高速高效、强大的分支管理、容错性强等核心优势,已成为软件开发、项目管理、文档协作等场景的必备工具。
无论是个人开发者的独立项目,还是企业级团队的协同开发,Git都能高效管理代码(或文档)的版本迭代,追踪每一次修改记录,解决多人协作时的代码冲突,实现版本回滚、分支隔离、代码评审等核心需求。掌握Git的使用,不仅是程序员、运维工程师的必备技能,也是产品、测试、运营等岗位协同工作的重要基础。
本文为8000字完整版Git使用指南,独立完整、逻辑清晰,涵盖Git核心概念、环境搭建、基础操作、分支管理、协同开发、高级技巧、错误排查、实战场景等十大核心模块,结合大量实操命令、案例解析、原理说明和注意事项,兼顾基础入门与高级进阶。既适合Git新手系统学习,快速上手实操;也适合资深开发者查阅参考,解决复杂场景下的Git使用问题,全方位覆盖Git使用的所有核心知识点,助力读者真正吃透Git的底层逻辑与实操技巧。
一、Git核心概念(基础必学)
在学习Git实操之前,首先需要明确Git的核心概念,厘清版本控制、分布式架构、Git三大区域等基础知识点,建立对Git的基本认知,为后续实操学习奠定基础。
1.1 版本控制的定义与价值
1.1.1 版本控制的定义
版本控制(Version Control)是一种记录文件(或项目)内容变化,以便将来查阅特定版本修订情况的系统。简单来说,版本控制就像"时光机",可以记录你对文件的每一次修改(如添加、删除、修改内容),随时可以回滚到任意历史版本,也能追踪每一次修改的作者、时间和修改内容。
在软件开发中,版本控制的核心作用是管理代码的迭代过程,解决以下核心问题:
- 多人协作时,避免代码覆盖、冲突;
- 追踪每一次代码修改,明确修改责任人,便于问题排查;
- 可以随时回滚到历史版本,解决误修改、代码 bug 等问题;
- 隔离不同的开发任务(如功能开发、bug修复),避免相互干扰;
- 备份代码,防止代码丢失(分布式版本控制更具优势)。
1.1.2 版本控制系统的分类
目前主流的版本控制系统分为两类,两者的核心区别在于架构不同,适用场景也有所差异:
- 集中式版本控制系统(Centralized Version Control System,CVCS)
核心特点:存在一个中央服务器,所有用户都从中央服务器获取代码、提交修改,中央服务器存储所有版本的代码。代表工具:SVN、CVS。
优点:架构简单、易于管理,适合小型团队;缺点:高度依赖中央服务器,一旦服务器故障,无法进行任何版本操作;网络依赖强,离线状态下无法提交修改、查看历史版本。 - 分布式版本控制系统(Distributed Version Control System,DVCS)
核心特点:没有中央服务器(或中央服务器仅作为协同枢纽),每个用户的本地都有完整的版本库,包含所有历史版本和修改记录。代表工具:Git、Mercurial。
优点:不依赖中央服务器,离线状态下可正常进行提交、查看历史等操作;容错性强,即使中央服务器故障,可通过任意用户的本地版本库恢复;网络依赖弱,仅在协同同步时需要网络;分支管理高效,适合大型团队和复杂项目。
缺点:学习成本略高于集中式版本控制系统,初期上手难度稍大。
Git作为分布式版本控制系统的代表,完美解决了集中式版本控制系统的痛点,是目前行业内的主流选择。
1.2 Git的核心特性
Git之所以能成为主流的版本控制工具,得益于其强大的核心特性,这些特性也是其与其他版本控制系统的核心区别:
- 分布式架构:每个本地版本库都是完整的,包含所有历史记录,不依赖中央服务器,支持离线工作;
- 高速高效:Git对本地操作(如提交、查看历史、切换分支)进行了极致优化,执行速度极快;对于远程操作,采用增量传输(仅传输修改的部分),节省网络带宽;
- 强大的分支管理:Git的分支机制灵活、高效,创建、切换、合并分支的操作几乎瞬间完成,支持复杂的分支策略(如Git Flow、GitHub Flow);
- 容错性强:Git会对所有数据进行校验(使用SHA-1哈希算法),确保代码的完整性,避免数据损坏;即使误操作,也能通过各种命令恢复;
- 暂存区机制:Git引入了"暂存区"(Staging Area),可以先将修改放入暂存区,确认无误后再提交到版本库,灵活控制提交内容;
- 免费开源:Git是开源软件,免费使用,可根据需求修改源码,社区活跃,持续迭代优化。
1.3 Git的三大区域与工作流程
Git的核心工作机制围绕"三大区域"展开,理解这三大区域的作用及相互关系,是掌握Git实操的关键。Git的三大区域分别是:工作区、暂存区、版本库(本地版本库),此外还有远程版本库(用于协同同步)。
1.3.1 三大区域的定义与作用
- 工作区(Working Directory)
工作区就是你本地电脑上存放项目文件的目录,是你日常编写代码、修改文件的地方。工作区中的文件分为两种状态:未跟踪(Untracked)和已跟踪(Tracked)。- 未跟踪(Untracked):文件刚创建,Git尚未记录其信息,不会被Git管理;
- 已跟踪(Tracked):文件已被Git记录,分为未修改(Unmodified)、已修改(Modified)、已暂存(Staged)三种状态。
- 暂存区(Staging Area / Index)
暂存区是Git的核心特性之一,位于本地版本库中,是一个临时存储区域,用于存放"准备提交到版本库的修改"。简单来说,暂存区就像一个"草稿箱",你可以将工作区中修改好的文件放入草稿箱,确认无误后,再将草稿箱中的内容一次性提交到版本库。
暂存区的作用:灵活控制提交范围,避免将未完成的修改提交到版本库;可以分批次提交修改,例如,将不同功能的修改分别放入暂存区,分多次提交,使提交记录更清晰。 - 版本库(Local Repository)
版本库也称为本地版本库,位于工作区的隐藏目录".git"中,是Git存储所有版本信息、历史记录、配置信息的核心目录。版本库中包含了所有提交记录、分支信息、标签信息等,是Git管理版本的核心。
注意:.git目录是Git的核心,不要手动修改或删除该目录下的文件,否则会导致版本库损坏,无法恢复。 - 远程版本库(Remote Repository)
远程版本库是位于服务器上的版本库(如GitHub、GitLab、Gitee等平台),主要用于多人协同开发时的代码同步。本地版本库可以与远程版本库进行交互(如推送本地修改、拉取远程修改),实现多人协作。
1.3.2 三大区域的工作流程
Git的日常工作流程,本质上就是"工作区 → 暂存区 → 版本库 → 远程版本库"的流转过程,核心步骤如下:
- 在工作区创建或修改文件(此时文件处于未跟踪或已修改状态);
- 将工作区的修改添加到暂存区(git add 命令),此时文件处于已暂存状态;
- 将暂存区的修改提交到本地版本库(git commit 命令),此时文件处于未修改状态,修改被永久记录到版本库中;
- 将本地版本库的修改推送到远程版本库(git push 命令),实现与其他开发者的协同;
- 从远程版本库拉取其他开发者的修改到本地(git pull 命令),同步最新代码。
补充:如果是首次使用,需要先初始化本地版本库(git init 命令),或从远程版本库克隆(git clone 命令)到本地,再进行后续操作。
1.4 Git的核心对象
Git的版本库本质上是由一系列"对象"组成的,这些对象存储了文件的内容、修改记录、版本信息等,理解这些核心对象,能帮助我们更深入地理解Git的底层工作原理。Git的核心对象主要有4种:
- Blob对象(二进制大对象)
Blob对象用于存储文件的内容,每个Blob对象对应一个文件的某个版本的内容,不包含文件名、路径等信息,仅存储文件的原始数据。例如,你修改了一个文件并提交,Git会创建一个新的Blob对象,存储该文件修改后的内容。 - Tree对象(树对象)
Tree对象用于存储目录结构和文件关联信息,相当于一个"目录索引"。Tree对象中包含了多个条目,每个条目对应一个Blob对象(文件)或另一个Tree对象(子目录),同时记录了文件名、路径和权限信息。例如,一个项目目录中包含多个文件和子目录,Git会创建一个Tree对象,关联这些文件和子目录的Blob对象和Tree对象。 - Commit对象(提交对象)
Commit对象用于记录一次提交的完整信息,是Git版本管理的核心。每个Commit对象包含以下关键信息:- 指向一个Tree对象(当前提交的目录结构和文件内容);
- 父Commit对象的指针(记录上一次提交的信息,形成提交历史链);
- 提交者信息(用户名、邮箱);
- 提交时间;
- 提交说明(记录本次提交的目的,如"修复登录bug""添加用户管理功能")。
每次执行git commit命令,Git都会创建一个新的Commit对象,将暂存区的内容固化为一个版本,形成一条连续的提交历史。
- Tag对象(标签对象)
Tag对象用于给某个Commit对象打上"标签",通常用于标记重要的版本(如发布版本v1.0、v2.0)。Tag对象与Commit对象关联,相当于给某个版本起一个易于记忆的名字,方便后续快速定位和回滚到该版本。
1.5 常见术语解析
学习Git过程中,会遇到很多专业术语,明确这些术语的含义,能避免理解偏差,提升学习效率:
- 提交(Commit):将暂存区的修改永久记录到本地版本库的操作,每次提交都会生成一个唯一的Commit ID(通过SHA-1哈希算法生成,由40位十六进制字符组成);
- 分支(Branch):版本库中一条独立的开发线路,用于隔离不同的开发任务,如功能开发分支、bug修复分支,默认分支为master(或main);
- 合并(Merge):将一个分支的修改合并到另一个分支的操作,用于整合不同分支的开发成果;
- 冲突(Conflict):多人协作时,两个分支修改了同一个文件的同一部分,Git无法自动判断如何合并,就会产生冲突,需要手动解决;
- 回滚(Rollback):将代码恢复到历史某个版本的操作,用于解决误修改、代码bug等问题;
- 克隆(Clone):从远程版本库复制一份完整的版本库到本地的操作,首次获取远程项目时使用;
- 拉取(Pull):从远程版本库拉取最新修改到本地,并自动合并到当前分支的操作(相当于git fetch + git merge);
- 推送(Push):将本地版本库的修改推送到远程版本库的操作,实现代码同步;
- 暂存(Stash):将工作区和暂存区的修改临时保存起来,用于切换分支时避免修改丢失,后续可以恢复;
- 远程仓库(Remote):位于服务器上的版本库,通常用于多人协同,可通过URL访问(如https://github.com/username/repo.git);
- HEAD:Git中的一个指针,指向当前所在的分支的最新提交,切换分支时,HEAD指针会随之移动;
- 索引(Index):即暂存区,用于临时存储准备提交的修改。
二、Git环境搭建(Windows/Linux/Mac)
要使用Git,首先需要在本地搭建Git环境,包括安装Git客户端、配置用户信息(用户名、邮箱),不同操作系统的安装步骤略有差异,下面分别详细讲解Windows、Linux、Mac三大系统的Git环境搭建方法,确保新手也能顺利完成。
2.1 Windows系统Git环境搭建
Windows系统没有自带Git,需要手动下载安装,步骤如下:
2.1.1 下载Git客户端
- 打开Git官方下载地址:https://git-scm.com/download/win,页面会自动识别Windows系统版本(32位/64位),下载对应的安装包(通常为.exe文件);
- 若页面未自动识别,可手动选择对应的版本:32位系统选择"32-bit Git for Windows Setup",64位系统选择"64-bit Git for Windows Setup";
- 等待下载完成,下载后的文件名为"Git-xxx-64-bit.exe"(xxx为版本号,如2.43.0)。
2.1.2 安装Git客户端
双击下载好的安装包,开始安装,步骤如下(重点注意勾选选项,其余默认即可):
- 弹出安装向导,点击"Next";
- 选择安装路径,建议安装在非系统盘(如D:\Git),点击"Next";
- 选择组件,默认勾选即可,建议额外勾选"Add Git Bash Here"(右键菜单添加Git Bash选项,方便快速打开Git命令行),点击"Next";
- 选择开始菜单文件夹,默认即可,点击"Next";
- 选择默认编辑器,建议选择"Use Visual Studio Code as Git's default editor"(若已安装VS Code),或默认的Vim编辑器,点击"Next";
- 选择"Git from the command line and also from 3rd-party software"(允许从命令行和第三方软件使用Git),点击"Next";
- 选择SSL/TLS证书配置,默认"Use the OpenSSL library",点击"Next";
- 选择换行符处理,默认"Checkout Windows-style, commit Unix-style line endings"(Windows换行符 checkout,Unix换行符 commit,兼容跨系统协作),点击"Next";
- 选择Git Bash的终端类型,默认"Use MinTTY (the default terminal of MSYS2)",点击"Next";
- 选择额外选项,默认勾选"Enable file system caching"和"Enable Git Credential Manager"( credential manager用于保存远程仓库的账号密码,避免每次推送都输入),点击"Next";
- 点击"Install",开始安装,等待安装完成;
- 安装完成后,勾选"Launch Git Bash",点击"Finish",自动打开Git Bash命令行窗口。
2.1.3 验证安装是否成功
打开Git Bash窗口,输入以下命令,若能显示Git版本号,说明安装成功:
bash
git --version
示例输出:git version 2.43.0.windows.1(版本号可能不同,只要显示版本信息即可)。
2.2 Linux系统Git环境搭建
Linux系统(如CentOS、Ubuntu)通常自带Git,但版本可能较低,若需要安装最新版本,可通过包管理器或源码编译安装,下面分别讲解两种方法。
2.2.1 包管理器安装(推荐,简单快捷)
不同Linux发行版的包管理器不同,分别讲解CentOS(yum)和Ubuntu(apt-get)的安装方法:
-
CentOS系统(yum包管理器)
打开终端,执行以下命令:bash# 切换到root用户(可选,若没有sudo权限) su - root # 安装Git yum install git -y -
Ubuntu系统(apt-get包管理器)
打开终端,执行以下命令:bash# 更新软件包列表 sudo apt-get update # 安装Git sudo apt-get install git -y
2.2.2 源码编译安装(适合需要最新版本的场景)
若包管理器安装的Git版本较低,可通过源码编译安装最新版本,步骤如下(以CentOS为例):
-
安装依赖包(编译Git需要的依赖):
bashyum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y -
下载Git源码包(从官方地址下载最新版本):
bash# 进入临时目录 cd /tmp # 下载源码包(版本号可替换为最新版本,如2.43.0) wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz -
解压源码包:
bashtar -zxvf git-2.43.0.tar.gz -
编译并安装:
bash# 进入解压后的目录 cd git-2.43.0 # 配置安装路径(默认安装在/usr/local/git) ./configure --prefix=/usr/local/git # 编译 make
安装
make install
```
-
配置环境变量(让系统识别git命令):
bashecho "export PATH=/usr/local/git/bin:\$PATH" >> /etc/profile # 生效环境变量 source /etc/profile
2.2.3 验证安装是否成功
在终端输入以下命令,若显示Git版本号,说明安装成功:
bash
git --version
2.3 Mac系统Git环境搭建
Mac系统自带Git,但版本可能较低,可通过两种方式安装:系统自带Git、Homebrew安装(推荐,可安装最新版本)。
2.3.1 查看系统自带Git版本
打开终端(Terminal),输入以下命令,查看是否自带Git及版本:
bash
git --version
若显示版本信息(如git version 2.39.2 (Apple Git-143)),说明系统自带Git,可直接使用;若需要最新版本,可通过Homebrew安装。
2.3.2 Homebrew安装Git(推荐)
Homebrew是Mac系统的包管理器,使用它可以快速安装和更新Git,步骤如下:
-
安装Homebrew(若未安装):
打开终端,执行以下命令(官方安装命令,可能需要科学上网):bash/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装完成后,执行"brew -v",若显示版本信息,说明Homebrew安装成功。
-
用Homebrew安装Git:
bash# 更新Homebrew软件包列表 brew update # 安装Git brew install git -
验证安装是否成功:
bashgit --version若显示的版本号高于系统自带版本,说明安装成功。
2.4 Git全局配置(必做)
无论哪种操作系统,安装完成Git后,都需要进行全局配置,设置用户名和邮箱。这两个信息会被记录到每一次提交中,用于标识提交者,是多人协作时的重要信息,也是远程仓库(如GitHub)认证的基础。
打开Git命令行(Windows用Git Bash,Linux/Mac用终端),执行以下两条命令,替换为自己的用户名和邮箱:
bash
# 设置全局用户名(建议与远程仓库用户名一致)
git config --global user.name "Your Name"
# 设置全局邮箱(建议与远程仓库邮箱一致)
git config --global user.email "your.email@example.com"
2.4.1 查看全局配置
执行以下命令,可查看当前的全局配置信息:
bash
git config --global --list
示例输出:
user.name=Your Name
user.email=your.email@example.com
2.4.2 修改全局配置
若需要修改用户名或邮箱,重新执行上述git config --global命令即可,新的配置会覆盖旧的配置。
2.4.3 局部配置(可选)
除了全局配置,还可以为单个项目设置局部配置(仅作用于当前项目),进入项目目录后,执行以下命令(去掉--global参数):
bash
git config user.name "Project Name"
git config user.email "project.email@example.com"
局部配置会覆盖全局配置,适用于需要为不同项目使用不同用户名/邮箱的场景(如工作项目和个人项目分开)。查看局部配置的命令:git config --list。
三、Git基础操作(核心必掌握)
Git的基础操作是日常使用的核心,包括版本库初始化、文件添加、提交、查看历史、版本回滚等,这些操作贯穿了Git使用的整个流程,新手必须熟练掌握。下面结合实操命令和案例,详细讲解每一个基础操作的用法、原理和注意事项。
3.1 版本库初始化(git init)
版本库初始化是使用Git管理项目的第一步,用于创建一个新的本地版本库,将普通的项目目录转换为Git可管理的目录。
3.1.1 基本用法
打开Git命令行,进入需要管理的项目目录,执行以下命令:
bash
# 进入项目目录(替换为自己的项目路径)
cd /path/to/your/project
# 初始化本地版本库
git init
3.1.2 执行结果
执行git init命令后,会在项目目录中创建一个隐藏的".git"目录,该目录就是本地版本库,包含了Git管理版本所需的所有文件。命令行输出如下:
Initialized empty Git repository in /path/to/your/project/.git/
3.1.3 注意事项
- 一个项目目录只需初始化一次,初始化后,该目录及子目录下的所有文件都会被Git监控;
- 不要手动删除或修改".git"目录,否则会导致版本库损坏,无法恢复;
- 若项目已经被Git管理(即存在".git"目录),再次执行git init命令不会覆盖原有版本库,只会提示"Reinitialized existing Git repository"。
3.2 查看文件状态(git status)
git status命令用于查看工作区和暂存区的文件状态,是日常使用中最频繁的命令之一,能帮助我们了解当前项目的修改情况,判断下一步需要执行的操作。
3.2.1 基本用法
在Git管理的项目目录中,执行以下命令:
bash
git status
3.2.2 常见状态说明
执行git status后,会根据文件的不同状态,输出不同的信息,常见状态如下:
- 工作区干净(Nothing to commit)
输出信息:
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
说明:工作区和暂存区没有任何修改,所有文件都处于未修改状态,当前分支与远程分支同步。 - 存在未跟踪文件(Untracked files)
输出信息:
On branch master
Untracked files:
(use "git add ..." to include in what will be committed)
test.txt
nothing added to commit but untracked files present (use "git add" to track)
说明:工作区中存在未被Git跟踪的文件(如新建的test.txt),需要使用git add命令将其添加到暂存区。 - 存在已修改但未暂存的文件(Changes not staged for commit)
输出信息:
On branch master
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: test.txt
说明:工作区中的test.txt文件已被修改,但修改未添加到暂存区,需要使用git add命令将修改添加到暂存区,或使用git restore命令丢弃修改。 - 存在已暂存但未提交的文件(Changes to be committed)
输出信息:
On branch master
Changes to be committed:
(use "git restore --staged ..." to unstage)
modified: test.txt
说明:工作区的修改已添加到暂存区,准备提交到本地版本库,需要使用git commit命令完成提交,或使用git restore --staged命令将暂存区的修改撤销,放回工作区。
3.2.3 简化输出(git status -s)
git status命令的默认输出信息较详细,若需要简洁的输出,可添加-s参数(short):
bash
git status -s
简化输出的标识说明:
- ??:未跟踪文件;
- M :已修改但未暂存的文件(M在左侧);
- M:已暂存的修改文件(M在右侧);
- A:已添加到暂存区的文件;
- D:已删除的文件。
示例输出:
?? test.txt # 未跟踪文件
M README.md # 已修改未暂存
M index.html # 已暂存修改
3.3 将修改添加到暂存区(git add)
git add命令用于将工作区的修改(未跟踪文件、已修改文件)添加到暂存区,是连接工作区和暂存区的核心命令。
3.3.1 基本用法(常用场景)
-
添加单个文件到暂存区:
bashgit add 文件名 # 示例:添加test.txt文件 git add test.txt -
添加多个文件到暂存区:
bashgit add 文件名1 文件名2 文件名3 # 示例:添加test.txt、README.md、index.html git add test.txt README.md index.html -
添加当前目录下所有修改到暂存区(推荐):
bashgit add .说明:"."表示当前目录,该命令会添加当前目录及子目录下的所有未跟踪文件、已修改文件到暂存区,适合批量添加修改,日常使用频率最高。
-
添加指定目录下所有修改到暂存区:
bashgit add 目录名/ # 示例:添加src目录下所有修改 git add src/
3.3.2 注意事项
- git add命令仅将修改添加到暂存区,不会提交到版本库,需要后续执行git commit命令完成提交;
- 若添加错误文件到暂存区,可使用git restore --staged 文件名命令,将该文件从暂存区撤销,放回工作区;
- 对于未跟踪文件,执行git add后,文件状态变为已暂存;对于已修改文件,执行git add后,修改被暂存,若再次修改该文件,需要重新执行git add,才能将新的修改添加到暂存区。
3.4 将暂存区修改提交到版本库(git commit)
git commit命令用于将暂存区的修改永久记录到本地版本库,生成一个新的Commit对象,记录本次提交的所有信息,是Git版本管理的核心操作。
3.4.1 基本用法
-
普通提交(打开编辑器输入提交说明):
bashgit commit执行该命令后,会打开默认编辑器(如Vim、VS Code),要求输入提交说明(commit message),输入完成后保存退出,即可完成提交。
提交说明的规范:建议简洁明了,首行概括本次提交的目的(不超过50个字符),换行后可详细描述修改内容(可选),例如:
fix: 修复登录页面验证码显示异常- 修复验证码图片加载失败问题;
- 优化验证码刷新逻辑,避免重复刷新。
-
快捷提交(直接在命令行输入提交说明):
bashgit commit -m "提交说明" # 示例:提交test.txt的修改,说明为"添加test.txt文件,用于测试" git commit -m "添加test.txt文件,用于测试"说明:-m参数用于直接在命令行输入提交说明,无需打开编辑器,适合简单的提交,日常使用频率最高。
-
跳过暂存区,直接提交工作区修改(不推荐):
bashgit commit -a -m "提交说明"
说明:-a参数会自动将工作区中所有已跟踪文件的修改添加到暂存区,然后执行提交,跳过手动git add步骤。但该命令不会添加未跟踪文件,仅适用于已跟踪文件的修改提交,不推荐新手使用,容易误提交不需要的修改。
3.4.2 提交结果说明
执行git commit命令后,若提交成功,会输出以下信息:
master 7a3f2d1\] 添加test.txt文件,用于测试 1 file changed, 1 insertion(+) create mode 100644 test.txt 说明: * master:当前提交的分支; * 7a3f2d1:本次提交的Commit ID(唯一标识,用于后续回滚、查看历史等操作); * 1 file changed, 1 insertion(+):修改统计,1个文件被修改,添加了1行内容; * create mode 100644 test.txt:创建了test.txt文件,权限为100644(普通文件权限)。 #### 3.4.3 注意事项 1. 提交说明要规范、清晰,便于后续查看历史记录时,快速了解本次提交的目的,避免使用"修改了文件""更新内容"等模糊的说明; 2. 每次提交应只包含一个完整的功能或一个bug修复,避免一次提交多个不相关的修改,便于后续回滚和代码评审; 3. 提交前务必确认暂存区的内容,避免提交错误的修改; 4. 提交后,暂存区的内容会被清空,工作区若没有新的修改,执行git status会显示"working tree clean"。 ### 3.5 查看提交历史(git log) git log命令用于查看本地版本库的提交历史,包括每次提交的Commit ID、提交者、提交时间、提交说明等信息,是查看版本迭代过程的核心命令。 #### 3.5.1 基本用法 1. 查看完整提交历史: ```bash git log ``` 输出信息示例: commit 7a3f2d18f5e6b3c4d1e2f3a4b5c6d7e8f9a0b1c2 (HEAD -\> master) Author: Your Name [your.email@example.com](mailto:your.email@example.com) Date: Sun Apr 5 21:30:00 2026 +0800 添加test.txt文件,用于测试 commit 8b4e3f27e6d5c4b3a2f1e0d9c8b7a6f5e4d3c2b1 Author: Your Name [your.email@example.com](mailto:your.email@example.com) Date: Sun Apr 5 21:20:00 2026 +0800 初始化项目,添加README.md文件 说明:提交历史按时间倒序排列,最新的提交在最上方,HEAD -\> master表示当前HEAD指针指向master分支的最新提交。 2. 查看简化的提交历史(仅显示Commit ID和提交说明): ````bash git log --oneline ``` ````