Git 初学者使用手册
Git 初学者使用手册
一份面向 Git 初学者的简明指南,带你理解 Git 三大核心区域(工作区、暂存区、远程仓库)及常用操作。
一、基础概念
Git 有三个核心区域,理解这三个区域是掌握 Git 的关键:

命令如下:
- clone(克隆): 从远程仓库中克隆代码到本地仓库。
- checkout (检出):从本地仓库中检出一个仓库分支然后进行修订。
- add(添加): 在提交前先将代码提交到暂存区。
- commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本。
- fetch (抓取) :从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
- pull (拉取) :从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于 fetch+merge。
- push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库。
| 区域 | 说明 |
|---|---|
| 工作区 | 你电脑上能看到的项目目录,是你实际编辑文件的地方 |
| 暂存区 | 一个临时存放区域,用来暂存你准备提交的修改 |
| 本地仓库 | Git 存储已提交数据的地方,位于 .git 目录中 |
| 远程仓库 | 托管在服务器(如 GitHub、GitLab、Gitee)上的仓库,用于多人协作 |
二、工作区(Working Directory)
工作区就是你电脑上看到的项目文件夹。你在编辑器里修改文件、新增文件、删除文件,这些操作全都在工作区中进行。
2.1 git init — 初始化仓库
将当前文件夹变成一个 Git 仓库,开始用 Git 管理它。
1 | git init |
效果:在当前目录下创建一个
.git隐藏文件夹,此后该目录中的文件变更都会被 Git 跟踪。
2.2 git status — 查看当前状态
随时查看工作区和暂存区目前的状态,是 Git 最常用的命令之一。
1 | git status |
效果:告诉你哪些文件被修改了、哪些是新文件、哪些已加入暂存区等待提交。初学者请多使用这个命令。
2.3 git diff — 查看文件具体改了啥
查看工作区中尚未暂存的修改内容。
1 | git diff # 查看工作区所有未暂存的修改 |
效果:逐行显示你对文件做了哪些改动(新增行标
+,删除行标-)。
2.4 git add — 将修改添加到暂存区
将工作区的修改提交到暂存区,准备后续的提交。这是连接”工作区”和”暂存区”的桥梁。
1 | git add 文件名 # 添加指定文件到暂存区 |
效果:把工作区的修改”拍一张快照”放到暂存区。此时的修改还没被真正保存到仓库中,还可以继续调整。
2.5 git checkout -- <file> / git restore <file> — 丢弃工作区的修改
如果你改乱了某个文件,想回到最近一次提交时的样子,可以用这个命令。
1 | git checkout -- 文件名 # 旧版写法 |
效果:放弃工作区中对指定文件的所有修改,恢复到最近一次
git commit或git add时的状态。此操作不可撤销,谨慎使用。
2.6 git clean — 清理未跟踪的文件
删掉工作区中新增的、Git 尚未跟踪的文件。
1 | git clean -n # 预览要删除的文件(安全模式) |
效果:清理项目中新产生的、还没被
git add过的文件。建议先加-n预览再执行。
三、暂存区(Staging Area / Index)
暂存区(也叫索引区)是一个中间地带。你可以把它想象成一个”购物车”:你在工作区里挑挑拣拣,把想”买”(提交)的东西先放到购物车里,最后一起结账(提交)。
3.1 git add — 将文件放入暂存区
1 | git add 文件名 |
效果:将文件从工作区→暂存区。可以多次
add再一次性commit。
3.2 git status — 查看暂存区有哪些内容
1 | git status |
效果:绿色部分显示的是已暂存(staged)的修改,红色部分显示的是工作区有改动但还没暂存的内容。
3.3 git diff --staged — 查看暂存区中的改动
1 | git diff --staged # 或 git diff --cached |
效果:显示暂存区中已经
add但还未commit的改动内容。
3.4 git restore --staged <file> — 从暂存区移出
如果你不小心把文件 add 进了暂存区,想把它移出来又不影响工作区的修改:
1 | git restore --staged 文件名 # 新版写法(推荐) |
效果:将文件从暂存区移回工作区,文件本身的内容不会被修改。只是不再参与下一次提交。
3.5 git commit — 提交暂存区到本地仓库
把暂存区中的所有改动打包成一个”版本”,永久保存到本地仓库中。
1 | git commit -m "提交说明" # 带提交信息 |
效果:将暂存区的所有修改保存为一个新的提交(commit),生成一个唯一的提交 ID。每次提交都相当于项目的”历史快照”。
💡 好习惯:提交信息要写清楚这次改了什么,方便以后翻看。
3.6 git commit --amend — 修改最近一次提交
如果刚提交完发现漏了文件,或者提交信息写错了:
1 | git add 漏掉的文件 |
效果:把当前暂存区的变更合并到最近一次提交中,同时可以修改提交信息。注意:如果已推送到远程仓库,慎用此命令。
3.7 git reset — 撤销提交
1 | git reset --soft HEAD~1 # 撤销最近一次提交,保留工作区和暂存区的内容 |
效果:将当前分支回退到指定版本。
--soft:只是撤销提交,所有修改还在暂存区--mixed(默认):撤销提交,修改放回工作区--hard:彻底丢弃,无法找回!请谨慎使用
四、远程仓库(Remote Repository)
远程仓库是放在服务器上的 Git 仓库,用于备份代码和团队协作。常见的远程仓库托管平台有 GitHub、GitLab、Gitee 等。
4.1 git remote — 管理远程仓库地址
1 | git remote -v # 查看当前有哪些远程仓库 |
效果:
origin是远程仓库的默认名称,你可以理解为给远程仓库地址起了一个”别名”。
4.2 git clone — 克隆远程仓库
把远程仓库的代码完整地复制到本地。
1 | git clone 仓库地址 |
效果:在本地创建一个新文件夹,里面包含了远程仓库的所有文件和历史记录,并且自动配置好了远程仓库地址。
4.3 git push — 推送本地提交到远程仓库
把你本地的提交上传到远程仓库,让别人能看到你的代码。
1 | git push origin main # 将本地 main 分支推送到 origin 远程 |
效果:将本地已有提交上传到远程仓库。
-u设置 upstream,后续可以直接用git push简写。
4.4 git pull — 拉取远程仓库更新
从远程仓库获取最新代码并自动合并到当前分支。
1 | git pull origin main # 拉取 origin 的 main 分支并合并 |
效果:等于
git fetch+git merge两个操作。将远程的最新代码拉到本地并自动合并。
4.5 git fetch — 只获取更新,不自动合并
从远程仓库获取最新代码,但不会自动合并到你当前的工作中。
1 | git fetch origin # 获取远程仓库的所有更新 |
效果:类似于”查看”一下远程仓库有没有新东西,但不会改变你的工作区。可以手动用
git merge或git rebase来合并。
git fetch vs git pull
| 命令 | 做了什么 | 安全吗? |
|---|---|---|
git fetch |
只下载远程新数据,不改你的代码 | ✅ 安全 |
git pull |
下载远程数据 + 自动合并到你的代码 | ⚠️ 可能有冲突 |
推荐做法:不确定时先用 git fetch 看看有什么更新,确认没问题后再 git merge。
4.6 git merge — 合并分支
将另一个分支的修改合并到当前分支。
1 | git merge 分支名 # 把指定分支合并到当前分支 |
效果:把两个分支的工作成果合并在一起。如果 Git 无法自动合并,会提示”冲突”,需要手动解决。
4.7 git branch — 管理分支
1 | git branch # 列出本地所有分支(*标记当前所在分支) |
效果:分支是 Git 的核心概念,让你可以同时开发不同功能互不干扰。
4.8 git checkout / git switch — 切换分支
1 | git checkout 分支名 # 切换到指定分支(旧版) |
效果:切换到其他分支,工作区的内容也会随之变为该分支的最新状态。
4.9 git log — 查看提交历史
1 | git log # 查看提交历史(详细) |
效果:显示项目的提交历史,包括提交 ID、作者、日期、提交信息等。
五、快速参考卡片
📁 工作区常用命令
| 你想干啥 | 命令 |
|---|---|
| 初始化仓库 | git init |
| 查看状态 | git status |
| 查看修改内容 | git diff |
| 丢弃工作区修改 | git restore 文件名 |
| 清理未跟踪文件 | git clean -fd |
📋 暂存区常用命令
| 你想干啥 | 命令 |
|---|---|
| 添加到暂存区 | git add 文件名 |
| 查看暂存区改动 | git diff --staged |
| 从暂存区移出 | git restore --staged 文件名 |
| 提交到本地仓库 | git commit -m "说明" |
| 修改上次提交 | git commit --amend |
☁️ 远程仓库常用命令
| 你想干啥 | 命令 |
|---|---|
| 克隆远程仓库 | git clone 地址 |
| 查看远程地址 | git remote -v |
| 添加远程地址 | git remote add origin 地址 |
| 推送到远程 | git push origin 分支名 |
| 拉取远程更新 | git pull origin 分支名 |
| 仅获取更新 | git fetch origin |
| 查看提交历史 | git log --oneline --graph |
| 创建分支 | git branch 分支名 |
| 切换分支 | git switch 分支名 |
| 合并分支 | git merge 分支名 |
一个典型的工作流程
1 | # 1. 初始化或克隆 |
写给初学者的几句话:
- 不要怕犯错,Git 的大部分操作都是可逆的。
- 多敲
git status和git log,它们是你最好的”导航仪”。- 提交时写清楚说明,将来的你会感谢现在的自己。
- 在不确定后果的操作前(尤其是
--hard参数),先备份或查阅资料。







