Git 从入门到实战

📅 2026/7/2 21:07:28
Git 从入门到实战
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