Git 从入门到实战(分布式版本控制完全指南)
本文系统讲解 Git 的诞生背景、核心概念、本地操作、远程协作、分支管理、标签及 VS Code 集成,涵盖从零基础到团队协作的全流程。所有命令基于 Git Bash 环境,示例清晰可直接运行。
一、Git 概述
业务场景:团队协作开发、代码版本管理、发布回滚。
Web后端重要性:⭐⭐⭐⭐⭐(核心技能,所有项目必用)
面试标注:★★★★(高频,特别是分布式概念和常用命令)
1.1 【What】是什么
Git是一个开源的分布式版本控制系统,由 Linux 创始人林纳斯·托瓦兹(Linus Torvalds)于 2005 年开发,最初用于管理 Linux 内核源码。
- 版本控制:记录一个文件或一组文件随时间变化的历史,以便日后查阅特定版本、对比差异、恢复旧版。
- 分布式:每个开发者的本地机器上都拥有完整的版本库(包括完整的历史记录),不依赖中央服务器即可进行版本管理。
生活化比喻:
版本控制就像写论文时的“修改记录”——你每次修改都保存一份副本,并写上“初稿”“导师修改版”“终稿”。Git 自动帮你做这件事,而且每个人都有自己的完整副本(分布式),不像传统方式只有老师手上有唯一原稿(集中式)。
1.2 【Why】为什么需要 Git
- 没有版本控制:文件靠复制粘贴备份,容易混淆、丢失历史、难以协作。
- 集中式(如 SVN):只有中央服务器有完整历史,网络中断无法提交,单点故障风险高。
- 分布式优势:
- 本地即可提交、查看历史、创建分支,速度极快。
- 不依赖网络,离线也能工作。
- 每个克隆都是完整备份,服务器挂了也能恢复。
面试题:Git 和 SVN 的主要区别?
答:Git 是分布式,每个本地都有完整版本库,支持离线提交和分支管理;SVN 是集中式,所有历史存于中央服务器,必须联网操作,分支管理较笨重。
二、Git 安装与配置
业务场景:新电脑上手第一步。
Web后端重要性:⭐⭐⭐⭐⭐
面试标注:★(操作题,会装即可)
2.1 安装 Git
- 官网下载:https://git-scm.com/
- Windows:下载
.exe安装包,一直“下一步”完成。 - 安装后验证:
git --version(如git version 2.37.3.windows.1)
2.2 配置用户信息(必须)
每一个 Git 提交都会记录作者信息,因此必须配置用户名和邮箱。
gitconfig--globaluser.name"Your Name"gitconfig--globaluser.email"your_email@example.com"--global表示全局配置,写入~/.gitconfig文件。- 查看所有配置:
git config --list
三、Git 本地仓库基础
3.1 初始化仓库(git init)
在项目根目录执行:
gitinit会在当前目录生成一个.git隐藏文件夹,这就是本地版本库(所有历史、配置都存在这里)。
3.2 工作区、暂存区、版本库
| 区域 | 作用 |
|---|---|
| 工作区(Workspace) | 你电脑上能看到的项目文件夹,即正在编辑的文件。 |
| 暂存区(Index/Stage) | 一个索引文件,记录下次要提交的文件列表。 |
| 本地仓库(Repository) | .git 目录,保存所有提交的版本数据。 |
生活化比喻:
工作区 = 你的办公桌(正在改文件);暂存区 = 快递打包台(把要发的文件放上去);本地仓库 = 仓库货架(已经打包好并贴上标签的版本)。
工作流程:
- 在工作区修改文件。
git add将更改添加到暂存区。git commit将暂存区内容提交到本地仓库。
四、文件跟踪与状态
业务场景:查看哪些文件被修改、哪些未跟踪。
Web后端重要性:⭐⭐⭐⭐⭐
面试标注:★★(常用命令)
4.1 查看状态(git status)
gitstatus输出可能状态:
- Untracked:新文件,未纳入版本控制。
- Changes to be committed:已暂存,待提交。
- Changes not staged for commit:已跟踪但未暂存。
- nothing to commit, working tree clean:所有文件已提交,工作区干净。
4.2 跟踪文件(git add)
gitaddfilename# 跟踪单个文件gitadd.# 跟踪所有未跟踪和已修改的文件将文件从工作区添加到暂存区。
4.3 提交(git commit)
gitcommit-m"提交说明"将暂存区内容永久保存到本地仓库,生成一个 commit 对象。
4.4 跳过暂存直接提交(-a)
gitcommit-a-m"提交说明"自动暂存所有已跟踪的文件(不包括新文件),跳过git add步骤。
五、修改与删除文件
5.1 修改文件后流程
- 编辑文件。
git add暂存修改。git commit -m "message"提交。
5.2 查看提交历史(git log)
gitlog# 完整列表gitlog--oneline# 每行显示一个简洁提交输出示例:
7e03a21 (HEAD -> master) update aa.txt 07a30b0 add aa.txt5.3 删除文件
- 手动删除(rm)后,需要
git add或git commit -a记录删除。 - 使用
git rm filename:同时从工作区和暂存区删除,并自动标记为已删除,之后commit即可。
git