今天咱们就聊聊Git最核心的那几个操作——从初始化到第一次提交,这些操作看似简单,却藏着不少新手容易栽进去的坑。
仓库初始化:别在错误的地方开始
创建Git仓库听起来简单,但第一个坑往往就在这里。很多人习惯在桌面右键新建文件夹,然后直接git init。这么做没问题,但后续管理会很痛苦。
# 正确的姿势:先建项目目录,再初始化
mkdir my_project # 先创建项目目录
cd my_project # 一定要进入目录
git init # 在这里初始化
# 常见错误示范:
cd ~/Desktop
git init # 这样会把整个桌面变成仓库!
我见过有人不小心在用户根目录执行git init,结果连下载的电影文件都被Git追踪了。记住:Git会递归追踪当前目录下的所有文件,一定要在项目根目录执行初始化。
初始化成功后你会看到提示:
Initialized empty Git repository in /path/to/your/.git/
那个.git文件夹就是Git的数据库,别手欠删除它,也别随意修改里面的内容。有些教程教人直接改.git/config文件,新手千万别这么干。
工作区与暂存区:理解这两个概念能省很多时间
Git最让人困惑的就是它的三区概念:工作区、暂存区、仓库。咱们用实际场景理解一下:
你正在开发一个功能,修改了三个文件:main.c、utils.h、readme.md。这时候:
- 工作区:就是你实际看到的这三个文件的当前状态
- 暂存区:相当于一个“购物车”,你决定哪些修改要进入下一次提交
# 查看当前状态(这个命令你会用无数次)
git status
# 把main.c加入暂存区(放进购物车)
git add main.c
# 把utils.h也加进去
git add utils.h
# 或者一次性添加所有修改(慎用!)
git add .
这里有个大坑:git add . 虽然方便,但容易把调试用的临时文件也加进去。我曾经提交过500MB的日志文件,就是因为用了这个命令。建议先用git status看看有哪些文件被修改了,再选择性添加。
.gitignore:早配置早轻松
说到临时文件,必须提.gitignore。这个文件应该在项目初始化后就创建,它能告诉Git哪些文件不需要追踪。
# 在项目根目录创建.gitignore
touch .gitignore
# 编辑内容,比如对于C项目:
*.o # 编译生成的中间文件
*.out # 可执行文件
*.log # 日志文件
/temp/ # 整个temp目录
.env # 环境配置文件(包含敏感信息)
特别提醒:.gitignore对已经追踪的文件无效。如果你之前不小心把node_modules加进了Git,需要先删除追踪:
git rm -r --cached node_modules # 从Git删除,但保留本地文件
第一次提交:信息写清楚,以后会感谢自己
文件都加到暂存区后,就可以提交了。提交信息的写法很有讲究:
# 反面教材(别这样写):
git commit -m "fix bug"
git commit -m "update"
git commit -m "asdf" # 我真见过有人这么写
# 推荐写法:
git commit -m "feat: 添加用户登录功能
- 实现JWT token生成
- 添加密码加密逻辑
- 编写登录接口测试用例"
提交信息是项目的日志,好的提交信息能在半年后帮你快速理解当时为什么这么改。我习惯用这些前缀:
feat:新功能fix:修复bugdocs:文档更新style:代码格式调整refactor:重构代码
查看提交记录:不只是git log
提交之后,验证一下成果:
# 基本查看
git log
# 简洁版(我更喜欢这个)
git log --oneline
# 图形化显示分支(后面讲分支时会用到)
git log --graph --all --oneline
如果发现提交信息写错了,别慌:
# 修改最近一次提交的信息(还没推送到远程时)
git commit --amend -m "新的提交信息"
那些我踩过的坑
-
提交粒度问题:一次提交应该只做一件事。不要把“修复bug”和“重构代码”混在一起提交。这样回退代码时你会感谢自己。
-
提交频率问题:不要攒了一周代码才提交。小步快跑,完成一个小功能就提交一次。Git提交很廉价,多用没坏处。
-
敏感信息泄露:提交前一定要检查是否包含密码、API密钥。一旦推送到远程仓库,这些信息就很难彻底清除。
-
二进制文件:Git不适合管理二进制文件(如图片、视频)的版本。如果二进制文件频繁修改,考虑用Git LFS或者单独管理。
个人经验谈
Git的学习曲线前陡后缓。刚开始会觉得命令多、概念绕,但一旦掌握了工作区-暂存区-仓库这个核心模型,其他都是在这个基础上的扩展。
我建议新手在第一个月,每天花10分钟练习这些基础命令。在本地建个测试目录,随意创建些文件,练习add、commit、status、log。肌肉记忆形成后,你会发现自己不再害怕版本管理了。
还有一点:别死记命令。理解每个操作在Git三区模型中的位置,比背100个命令参数更有用。当你真正理解暂存区就是个“购物车”时,自然就知道什么时候该add,什么时候该commit。
下次咱们聊聊Git的时光机功能——如何回退代码、查看历史版本。你会发现,掌握基础后,那些“高级”功能其实都很直观。

569

被折叠的 条评论
为什么被折叠?



