git虽然是一个基础得不能再基础的必备技能,一直使用vs code等IDE写代码的话,git操作基本都是鼠标点点就行了,但总该记得一些基础的操作吧,长时间不用总会生疏的,慢慢的估计都忘了怎么用了,还是记录一下吧。
🔍 什么是 Git?
Git 是一个分布式版本控制系统(DVCS),核心能力是:
- ✅ 记录每一次代码变更(谁、何时、改了哪行)
- ✅ 随时回退到任意历史版本(“昨天好好的,今天崩了?” → 一键还原)
- ✅ 多人并行开发不打架(你改 UI,我改逻辑,最后安全合并)
🌰 极简类比
| 场景 | 类比说明 |
|---|---|
| 不用 Git | 写论文只存 终稿.doc → 改崩了?只能重写 |
| 用 Git | 自动存 v1_初稿.md → v2_加结论.md → v3_导师批注版.md,随时对比/回滚 |
💡 关键区分:
- Git = 本地管理工具(命令行程序)
- GitHub / GitLab / Gitee = 远程托管平台(类似“代码网盘 + 协作中心”)
❓ 为什么要学 Git 基本操作?
| 痛点 | Git 如何解决 | 你的收益 |
|---|---|---|
| 代码改崩不敢试 | git commit 生成安全快照 → 崩了就 git restore | ✅ 大胆实验,零心理负担 |
| 多人协作覆盖代码 | 分支隔离开发 + 合并审查 | ✅ 不再“你的删了我的” |
| 面试/实习硬门槛 | 99% 开发岗要求“熟悉 Git” | ✅ 简历过关基础项 |
| 开源项目参与 | Fork → 提 PR 是唯一路径 | ✅ 从使用者变贡献者 |
| 个人项目混乱 | 清晰提交历史 = 自动写文档 | ✅ 一周后仍知“当时为啥这么改” |
🐾 小蚂蚁视角:
Git 不是“高级技能”,而是现代编程的“呼吸方式”
——就像小蚂蚁不会问“为什么要搬东西”,因为不搬,就活不下去 🐜💨
🎯学习目标
掌握日常开发 90% 场景 所需git操作:
✅ 初始化仓库|✅ 提交变更|✅ 分支管理|✅ 推送/拉取|✅ 基础撤销
1️⃣ 初始化 & 配置(一次即可)
# 设置全局身份(提交记录归属)
git config --global user.name "你的名字"
git config --global user.email "your@email.com"
# 初始化本地仓库(在项目根目录执行)
git init⚠️ 技术提醒:
- 不同机器需单独配置
- 邮箱建议用 GitHub 注册邮箱
2️⃣ 日常工作流(核心四步)
# 📌 第一步:查看改动(随时可用!强烈建议先看状态)
git status
# 📌 第二步:暂存改动(把“想提交的”打包)
git add <文件名> # 添加单个文件
git add . # 添加所有改动(谨慎!建议明确指定)
# 📌 第三步:提交到本地仓库(生成版本快照)
git commit -m "feat: 添加登录按钮" # 提交信息规范:类型: 简洁描述
# 📌 第四步:查看历史(确认提交成功)
git log --oneline -5 # 显示最近5条,简洁版✨ 提交信息规范建议(非强制但推荐):
feat:新功能|fix:修复 bug|docs:文档|chore:构建/工具- 例:
fix: 修复密码输入框溢出|chore: 添加 .gitignore
3️⃣ 连接远程仓库(如 GitHub)
场景一:从零开始(本地新建项目 → 推到远程)
# 关联远程仓库(首次)
git remote add origin https://github.com/你的用户名/仓库名.git
# 推送本地 main 分支到远程(首次需 -u)
git push -u origin main
# 后续推送(-u 记住关联后,只需)
git push⚠️ 常见陷阱:
- 若远程已有
main(比如用 GitHub 模板创建),本地需先git pull再推- 若提示
fatal: not a git repository→ 检查是否在项目根目录
场景二:参与已有项目(克隆远程仓库到本地)← 新增!
# 克隆整个仓库(含历史 + 分支)
git clone https://github.com/用户名/仓库名.git
# 进入项目目录(自动创建同名文件夹)
cd 仓库名
# 后续直接开发 → commit → push✅
git clone本质做了 4 件事:
git initgit remote add origin <url>git pull origin main(或默认分支)- 切换到默认分支(如
main)⚠️ 常见陷阱:
- 若远程已有
main(比如用 GitHub 模板创建),本地不要git init+push,应直接clone- 若提示
fatal: not a git repository→ 检查是否在项目根目录- 克隆后
git remote -v确认远程地址正确
4️⃣ 分支管理(协作基石)
# 查看分支
git branch # 本地分支(* 表示当前)
# 创建并切换分支(推荐写法)
git switch -c dev # 创建 dev 并切换(Git ≥2.23)
# 或传统写法
git checkout -b dev
# 合并分支(如:将 dev 合入 main)
git switch main # 先切换到目标分支
git merge dev # 合并
# 删除已合并分支
git branch -d dev # 安全删除(未合并会报错)💡 最佳实践:
main保持可部署状态- 功能开发 →
feature/xxx|修复 bug →fix/xxx
5️⃣ 撤销操作(救命三件套)
| 场景 | 命令 | 说明 |
|---|---|---|
改错文件,还没 add | git restore file.txt | 丢弃工作区修改(还原为上次 commit 状态) |
add 错了,想撤回暂存 | git restore --staged file.txt | 从暂存区移出,但保留本地修改 |
commit 描述写错/漏文件 | git commit --amend | 修改上一次提交(可补 add + 改 message) |
❗ 重要:以上均为 本地操作,未推送到远程时安全使用
若已push,修改历史需git push --force(慎用!影响协作)
6️⃣ 常用辅助命令
# 查看改动细节(对比工作区 vs 暂存区)
git diff
# 查看暂存区 vs 最近一次 commit
git diff --cached
# 忽略文件(创建 .gitignore)
echo ".env" >> .gitignore
echo "node_modules/" >> .gitignore
echo "__pycache__/" >> .gitignore
# 查看远程仓库地址
git remote -v🔒 安全 & 习惯建议
| 风险点 | 建议 |
|---|---|
| 敏感信息泄露 | 永远把 .env、密钥、日志加入 .gitignore |
| 路径/换行问题 | Windows 用户建议:git config --global core.autocrlf true |
| 提交污染 | 提交前 git status + git diff 双检查 |
| 远程冲突 | git pull 前先 commit 或 stash 本地改动 |
评论已关闭