启航

常用 Git 命令详解

详细介绍 Git 中常见命令的使用方法与最佳实践,适合前端开发者。

🎯 引言

作为前端开发者,Git 是我们管理代码、协作开发必备的工具。无论是查看修改内容、撤销错误操作,还是合理地忽略某些文件,再加上写出清晰的 commit message,都是让团队开发更高效的重要技能。这篇文章将详细介绍常用的 Git 命令,结合前端实际场景,帮助你掌握版本管理的精髓。


🔍 查看修改:git status 和 git diff

在日常开发过程中,明确当前代码状态非常重要。两个基础又常用的命令是 git statusgit diff

  • git status:显示仓库当前的状态,包括哪些文件被修改了、哪些文件处于暂存区、哪些文件未被跟踪等。它帮助我们判断下一步应该做什么操作。
  • git diff:对比代码差异。默认展示工作区和暂存区之间的差异,也可以用来对比两个 commit 之间的不同。

使用示例

git status

执行后会看到类似:

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)

    modified:   index.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    README.md
git diff

显示 index.js 中未经暂存的修改内容,方便我们检查具体改动。

git diff --staged 可以查看已经添加到暂存区但还未提交的改动。

🔄 撤销操作:恢复代码、删除改动、回退 commit

开发中难免会犯错,Git 提供了多种撤销手段,让我们可以灵活恢复。

1. 撤销工作区修改(尚未暂存)

git checkout -- filename

该命令会将某个文件恢复到上一次 commit 的状态,丢弃当前未暂存的修改。

2. 撤销暂存区修改

git reset HEAD filename

将文件从暂存区移除,保留工作区修改。

3. 删除新添加的未跟踪文件

git clean -f

会删除工作区中新创建但未被跟踪的文件,非常适合清理临时文件。

git clean 是不可逆操作,请慎用!

4. 回退 commit

  • 使用 git reset 回退到指定 commit
git reset --hard commit_id

回退到某个 commit,丢弃之后所有提交和本地修改。

  • 使用 git revert 创建新 commit 用于撤销某次提交(更安全)
git revert commit_id

🚫 忽略 node_modules:.gitignore 编写技巧

node_modules 文件夹通常非常庞大,且依赖可以通过 package.json 重现,所以我们不应该提交它。

.gitignore 文件编写示例(常见前端)

# 忽略 node_modules
node_modules/

# 忽略日志文件
*.log

# 忽略构建产物
dist/
build/

# 忽略操作系统生成的文件
.DS_Store
Thumbs.db
.gitignore 文件需要放在仓库根目录,并且添加后如果某些文件已经被跟踪,需要先执行 git rm --cached filename 才能生效。

📝 清晰的 commit message 写法(结合前端场景)

良好的 commit message 能提升协作效率,便于回溯与代码审查。推荐格式:

<类型>(<范围>): <简短描述>

<详细描述,可多行>

常用类型示例

  • feat:新功能
  • fix:修复 bug
  • docs:文档更改
  • style:代码格式(空格、分号等,不影响功能)
  • refactor:重构代码
  • test:添加或修改测试
  • chore:构建过程或辅助工具变动

前端实践举例

feat(login): 增加微信登录功能

- 集成微信 SDK
- 登录成功后跳转首页
fix(api): 修复用户信息接口异常

接口返回为空时添加空值判断,避免页面报错
写 commit message 时,标题控制在 50 字以内,正文换行控制在 72 字以内,更易读。

🧾 小节总结

  1. git statusgit diff 是查看代码状态和差异的利器。
  2. 通过 git checkoutgit resetgit clean 等命令可以灵活撤销修改。
  3. .gitignore 对管理仓库体积和避免无用文件提交非常关键,尤其是忽略 node_modules
  4. 规范的 commit message 书写,有助于团队沟通和代码维护。

❓ 知识问答(Q&A)

Q:git diffgit diff --staged 有什么区别?

A:git diff 显示工作区与暂存区的差异,git diff --staged 显示暂存区与上次提交的差异。

Q:已经提交的 commit 如何撤销?

A:可以用 git revert 创建一个新提交撤销之前的改动,或者用 git reset --hard 回退到指定 commit(会丢失之后的提交,慎用)。

Q:为什么要忽略 node_modules

A:node_modules 很大且可通过 package.json 安装,提交它会增加仓库体积且不易管理。


🧪 小练习

练习 1:查看当前改动

请使用命令查看当前工作区和暂存区的修改内容,确认有哪些文件被修改。

git status
git diff

练习 2:忽略构建目录

在项目根目录创建 .gitignore 文件,忽略 dist.log 文件。

dist/
*.log

🎉 恭喜你已经掌握 Git 查看修改、撤销操作、忽略文件及规范 commit message 等实用技巧啦!这些技能能帮助你更高效地管理代码,提升团队协作体验。继续多练习,成为 Git 使用高手!