常用 Git 命令详解
🎯 引言
作为前端开发者,Git 是我们管理代码、协作开发必备的工具。无论是查看修改内容、撤销错误操作,还是合理地忽略某些文件,再加上写出清晰的 commit message,都是让团队开发更高效的重要技能。这篇文章将详细介绍常用的 Git 命令,结合前端实际场景,帮助你掌握版本管理的精髓。
🔍 查看修改:git status 和 git diff
在日常开发过程中,明确当前代码状态非常重要。两个基础又常用的命令是 git status 和 git 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
git rm --cached filename 才能生效。📝 清晰的 commit message 写法(结合前端场景)
良好的 commit message 能提升协作效率,便于回溯与代码审查。推荐格式:
<类型>(<范围>): <简短描述>
<详细描述,可多行>
常用类型示例
- feat:新功能
- fix:修复 bug
- docs:文档更改
- style:代码格式(空格、分号等,不影响功能)
- refactor:重构代码
- test:添加或修改测试
- chore:构建过程或辅助工具变动
前端实践举例
feat(login): 增加微信登录功能
- 集成微信 SDK
- 登录成功后跳转首页
fix(api): 修复用户信息接口异常
接口返回为空时添加空值判断,避免页面报错
🧾 小节总结
git status和git diff是查看代码状态和差异的利器。- 通过
git checkout、git reset、git clean等命令可以灵活撤销修改。 .gitignore对管理仓库体积和避免无用文件提交非常关键,尤其是忽略node_modules。- 规范的 commit message 书写,有助于团队沟通和代码维护。
❓ 知识问答(Q&A)
Q:git diff 和 git 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 使用高手!
