《每天都在用的 Git 命令,你真的懂了吗?》

135 阅读6分钟

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 不仅是会操作命令,更重要的是养成良好的习惯:

  1. 提交要有意义
    每次提交都应是一个相对独立的功能或修改。
    不建议一次提交上百个文件。

  2. 写清楚提交说明
    提交信息应简明扼要,说明做了什么。
    示例:

    fix: 修复登录页按钮样式
    feat: 新增用户注册功能
    
  3. 避免提交敏感文件
    例如 .env、密钥、配置文件等。
    一旦上传到远程仓库,信息将不可撤销地公开。

  4. 定期推送到远程
    防止本地硬盘损坏或数据丢失。


十一、总结:Git 命令的学习路线

掌握 Git 并不需要背下所有命令,只要理解几个核心动作:

阶段核心命令
初始化git init
追踪修改git addgit status
提交版本git commit
查看记录git loggit diff
远程同步git pushgit pullgit clone
分支管理git branchgit checkoutgit merge
回退恢复git resetgit reflog

掌握这些命令,你已经能独立管理一个完整的项目。


结语

Git 的命令看似繁多,其实背后逻辑非常一致:
一切操作都是围绕“版本变动”进行的。

当你熟悉这些基本命令后,
就能在任何场景下自如地操作——
无论是独立项目、团队协作,还是大型开源工程。

下一步,你可以尝试用 Git 管理自己的代码项目,
亲身体验那种“修改可追踪、版本可回退”的安全感。