Git 常用命令与实战操作篇:从提交到分支管理,一次讲清
在上一篇《Git 入门指南》中,我们了解了 Git 的作用、安装流程以及版本控制的概念。
从这一篇开始,我们进入更实用的部分——Git 的常见命令与实战操作。
无论你是个人开发者还是团队成员,只要掌握本文提到的命令,你就能独立管理项目版本、解决冲突、与远程仓库保持同步。
一、Git 的三个核心区域回顾
在开始操作前,我们先快速复习 Git 的结构:
| 区域 | 作用 | 示例命令 |
|---|---|---|
| 工作区(Working Directory) | 实际编写、修改代码的区域 | git status |
| 暂存区(Staging Area) | 临时存放要提交的修改 | git add |
| 本地仓库(Repository) | 永久保存历史版本 | git commit |
可以把它理解成一个流程:
工作区 → 暂存区 → 本地仓库 → 远程仓库
二、创建与初始化仓库
假设你正在开发一个项目,目录为:
lesson_zp/
让它成为一个受 Git 管理的仓库,只需执行:
git init
Git 会在该目录下创建一个隐藏文件夹 .git,用来保存所有版本信息。
这时,你的项目就获得了“版本控制能力”。
三、文件的添加与提交
1️⃣ 查看状态
在任何时候,你都可以使用命令查看当前项目的修改情况:
git status
它会告诉你:
- 哪些文件被修改;
- 哪些文件未被追踪;
- 是否有文件等待提交。
2️⃣ 添加文件到暂存区
如果你想提交所有修改,可以使用:
git add .
. 表示当前目录下的所有变动。
你也可以单独添加某个文件:
git add index.html
3️⃣ 提交到本地仓库
当暂存区准备就绪后,执行提交:
git commit -m "第一次提交"
-m 后面是提交说明。
这一步的结果是:所有暂存区的内容被记录为一个版本(commit),并永久保存。
四、修改与回退版本
Git 的一大强项就是“后悔药”功能。
无论是误删文件还是错误修改,都可以通过版本管理回到过去。
1️⃣ 查看历史记录
git log
会列出所有提交记录,包含作者、时间、提交信息与唯一版本号(commit id)。
如果只想看简短格式:
git log --oneline
2️⃣ 回退到上一个版本
git reset --hard HEAD~1
HEAD~1 表示上一个版本。
如果想回到指定版本,可以用版本号:
git reset --hard <commit-id>
⚠️ 注意:
--hard会丢弃当前未提交的修改。
若只是想保留修改,可使用--soft或--mixed。
3️⃣ 撤销工作区修改
如果你只是改坏了某个文件但没提交,可以用:
git checkout -- 文件名
即可恢复该文件到上次提交的状态。
五、查看文件差异
Git 能精确地展示文件修改的内容:
git diff
它会列出未暂存文件的修改。
如果你想查看暂存区与上次提交之间的差异:
git diff --cached
这对于检查提交前的更改非常有用。
六、远程仓库操作
1️⃣ 连接远程仓库
本地仓库创建好后,我们通常会将其与远程仓库(如 Gitee)关联:
git remote add origin https://gitee.com/yourname/lesson_zp.git
origin 是远程仓库的默认别名。
2️⃣ 推送到远程
git push -u origin master
或在新版本 Git 中使用:
git push -u origin main
-u 选项的作用是建立本地分支与远程分支的关联,
以后可以直接使用 git push 推送。
3️⃣ 拉取远程更新
当其他人修改了远程仓库的内容时,执行:
git pull
它会自动从远程仓库获取更新并合并。
4️⃣ 克隆远程项目
如果你要从远程仓库获取完整副本:
git clone https://gitee.com/yourname/lesson_zp.git
这会在本地生成一份完整的项目及其所有历史版本。
七、分支管理
分支是 Git 最强大的功能之一。
它允许你在不影响主线代码的情况下独立开发、测试或修复问题。
1️⃣ 创建分支
git branch dev
这会创建一个名为 dev 的分支。
2️⃣ 切换分支
git checkout dev
从此,你就在 dev 分支上进行开发。
3️⃣ 合并分支
当功能开发完成后,可以把它合并回主分支:
git checkout master
git merge dev
若没有冲突,Git 会自动完成合并。
4️⃣ 删除分支
git branch -d dev
若要强制删除未合并分支:
git branch -D dev
八、.gitignore:让 Git 自动忽略某些文件
有些文件不应提交到仓库,比如:
- 环境变量文件
.env; - 临时日志;
- 系统文件;
- 大型依赖目录(如
node_modules/)。
我们可以在项目根目录创建一个 .gitignore 文件:
# 忽略环境变量
.env
# 忽略依赖包
node_modules/
# 忽略日志
*.log
这样,Git 在执行 git add . 时会自动跳过这些文件,防止敏感内容被上传。
九、查看提交记录与历史
除了 git log,还有一些非常实用的查看命令:
| 命令 | 作用 |
|---|---|
git log --oneline | 简洁查看历史 |
git show <commit-id> | 查看某次提交详情 |
git blame <file> | 查看文件中每行是谁修改的 |
git reflog | 查看所有历史操作(包括被回退的版本) |
特别是 git reflog,
当你误用 reset 丢失版本时,它往往是“最后的救命稻草”。
十、版本管理的良好习惯
使用 Git 不仅是会操作命令,更重要的是养成良好的习惯:
-
提交要有意义
每次提交都应是一个相对独立的功能或修改。
不建议一次提交上百个文件。 -
写清楚提交说明
提交信息应简明扼要,说明做了什么。
示例:fix: 修复登录页按钮样式 feat: 新增用户注册功能 -
避免提交敏感文件
例如.env、密钥、配置文件等。
一旦上传到远程仓库,信息将不可撤销地公开。 -
定期推送到远程
防止本地硬盘损坏或数据丢失。
十一、总结:Git 命令的学习路线
掌握 Git 并不需要背下所有命令,只要理解几个核心动作:
| 阶段 | 核心命令 |
|---|---|
| 初始化 | git init |
| 追踪修改 | git add、git status |
| 提交版本 | git commit |
| 查看记录 | git log、git diff |
| 远程同步 | git push、git pull、git clone |
| 分支管理 | git branch、git checkout、git merge |
| 回退恢复 | git reset、git reflog |
掌握这些命令,你已经能独立管理一个完整的项目。
结语
Git 的命令看似繁多,其实背后逻辑非常一致:
一切操作都是围绕“版本变动”进行的。
当你熟悉这些基本命令后,
就能在任何场景下自如地操作——
无论是独立项目、团队协作,还是大型开源工程。
下一步,你可以尝试用 Git 管理自己的代码项目,
亲身体验那种“修改可追踪、版本可回退”的安全感。