你好!这份教程会像教小朋友一样,一步步带你掌握 Git 代码提交。不管你是完全零基础,还是已经踩过一些坑,这份教程都能帮你建立起完整、规范的 Git 使用流程。
📖 第一章:理解 Git 是什么
1.1 通俗理解 Git
想象你在写一本小说:
- Git 就像一个时光机:可以随时记录你写的内容
- 每次提交就像拍一张照片:记录下当前所有文件的样子
- 远程仓库就像云盘:把照片备份到网上,防止电脑坏了丢失
- 分支就像平行宇宙:可以同时尝试不同的故事情节
1.2 三个重要区域
Git 有三个核心工作区域,理解它们很重要:
工作区 (Working Directory) → 暂存区 (Staging Area) → 本地仓库 (Local Repo) → 远程仓库 (Remote Repo)
↓ ↓ ↓ ↓
你正在修改的文件 准备提交的文件 已经保存的历史 GitHub上的备份
💻 第二章:第一次准备(环境搭建)
2.1 安装 Git
Windows 用户:
- 访问 git-scm.com/download/wi…
- 下载安装包(64-bit 版本)
- 双击安装,一路点击 "Next",全部用默认设置
- 安装完成后,在桌面空白处右键,看到 "Git Bash Here" 就成功了
Mac 用户:
- 打开终端(Terminal)
- 输入命令:
git --version - 如果没有安装,系统会提示你安装,点击确认即可
2.2 第一次配置(只需做一次)
打开命令行(Windows 用 Git Bash,Mac 用终端),输入:
# 设置你的身份标识(重要!)
git config --global user.name "你的名字" # 比如:git config --global user.name "Zhang San"
git config --global user.email "你的邮箱" # 比如:git config --global user.email "zhangsan@example.com"
# 设置默认分支名为 main(新项目推荐)
git config --global init.defaultBranch main
# 查看配置是否成功
git config --list
2.3 配置 SSH 密钥(连接 GitHub 的钥匙)
# 1. 生成 SSH 密钥(一路回车即可)
ssh-keygen -t ed25519 -C "你的邮箱"
# 2. 查看并复制公钥
cat ~/.ssh/id_ed25519.pub
# 屏幕上会显示一串字符,全部复制下来(以 ssh-ed25519 开头)
# 3. 打开 GitHub.com,登录你的账号
# 4. 点击右上角头像 → Settings → SSH and GPG keys
# 5. 点击 "New SSH key"
# 6. Title 填 "My Computer",Key 粘贴刚才复制的内容
# 7. 点击 "Add SSH key"
# 8. 测试连接
ssh -T git@github.com
# 如果看到 "Hi 你的用户名! You've successfully authenticated..." 就成功了
🚀 第三章:第一次提交代码
3.1 在 GitHub 上创建空仓库
-
登录 GitHub.com
-
点击右上角 "+" 号 → "New repository"
-
重要设置:
- Repository name:填你的项目名(比如
my-first-project) - Description:可选的描述
- Public/Private:选 Private(私有)或 Public(公开)
- 不要勾选 "Initialize this repository with a README"(因为我们从本地上传)
- Repository name:填你的项目名(比如
-
点击 "Create repository"
3.2 本地项目第一次提交
假设你已经在电脑上有一个项目文件夹,比如 D:\my-project:
# 1. 进入你的项目目录
cd D:\my-project
# 2. 初始化 Git 仓库
git init
# 3. 查看当前状态(随时可以运行这个命令)
git status
# 应该会看到红色的文件名,说明文件还没被跟踪
# 4. 添加所有文件到暂存区
git add .
# 5. 再次查看状态(应该变成绿色)
git status
# 6. 提交到本地仓库
git commit -m "第一次提交:初始化项目"
# -m 后面是提交说明,要写清楚这次做了什么
# 7. 关联远程仓库(地址在刚才创建的仓库页面可以找到)
git remote add origin git@github.com:你的用户名/你的仓库名.git
# 8. 推送到 GitHub
git push -u origin main
# 如果提示 failed to push,可能是远程有 README,执行:
git pull origin main --allow-unrelated-histories
# 然后再次 git push
3.3 日常提交流程(最常用)
# 1. 查看哪些文件修改了
git status
# 2. 添加具体文件(推荐)
git add 文件名1 文件名2
# 或者添加所有修改
git add .
# 3. 提交(写好说明)
git commit -m "这里写你做了哪些修改"
# 4. 推送到 GitHub
git push
# 如果提示 "fatal: The current branch main has no upstream branch"
# 说明是第一次推送,执行:
git push -u origin main
📊 第四章:Git 状态图解
4.1 文件状态流转图
Untracked (未跟踪) → Staged (暂存) → Committed (已提交)
↓ ↓ ↓
新文件 git add 之后 git commit 之后
4.2 常用命令图解
git status → 查看当前状态
↓
git add 文件 → 把文件放入暂存区
↓
git commit -m "说明" → 把暂存区的内容保存到本地仓库
↓
git push → 上传到 GitHub
🔧 第五章:常见场景处理
5.1 场景一:提交错了想撤销
# 情况1:git add 多了文件(还在暂存区)
git reset HEAD 文件名 # 把文件移出暂存区
# 情况2:git commit 后发现写错了说明
git commit --amend -m "新的正确的说明"
# 情况3:想撤销最近的提交但保留修改
git reset --soft HEAD~1
# 情况4:想彻底撤销最近的修改
git reset --hard HEAD~1 # 小心!这会删除修改
5.2 场景二:拉取远程更新
# 获取远程更新但不合并
git fetch
# 获取远程更新并合并到本地
git pull
# 如果 pull 失败,可能是冲突了
# 先暂存本地修改
git stash
git pull
git stash pop # 恢复暂存的修改,可能需要解决冲突
5.3 场景三:解决冲突
当出现 "CONFLICT" 提示时:
- 打开冲突的文件,搜索
<<<<<<<、=======、>>>>>>> - 手动编辑文件,保留想要的内容
- 删除冲突标记
- 保存文件
- 执行:
git add 文件名
git commit -m "解决冲突"
git push
🌿 第六章:分支管理(进阶必备)
6.1 为什么需要分支?
- main/master:主分支,放稳定代码
- dev:开发分支,大家在这里协作
- feature/xxx:功能分支,开发新功能
- bugfix/xxx:修复分支,修 Bug
6.2 分支操作大全
# 查看所有分支
git branch
# 创建新分支
git branch dev
# 切换分支
git checkout dev
# 或者创建并切换(一步到位)
git checkout -b feature/login
# 合并分支(先切回目标分支)
git checkout main
git merge dev
# 删除分支
git branch -d dev
git branch -D dev # 强制删除(未合并的)
🎯 第七章:提交信息规范
7.1 好的提交信息示例
# 推荐格式:<类型>: <简短描述>
git commit -m "feat: 添加用户登录功能"
git commit -m "fix: 修复登录页崩溃问题"
git commit -m "docs: 更新 README 文档"
git commit -m "style: 格式化代码"
git commit -m "refactor: 重构登录逻辑"
git commit -m "test: 添加登录测试用例"
7.2 提交频率建议
- 每个独立功能一次提交(不要一天只提交一次)
- 提交前测试代码能运行(不要把坏代码提交上去)
- 提交信息要能看懂(一个月后自己还能明白)
🚨 第八章:常见错误及解决方法
8.1 错误:"Permission denied (publickey)"
原因:SSH 密钥没配好
解决:
1. 检查是否有密钥:ls ~/.ssh/
2. 重新生成:ssh-keygen -t ed25519 -C "你的邮箱"
3. 重新添加到 GitHub
8.2 错误:"Failed to connect to github.com port 443"
原因:网络问题或代理设置
解决:
1. 取消代理:git config --global --unset http.proxy
2. 或者设置正确的代理:git config --global http.proxy http://127.0.0.1:7890
3. 检查网络:ping github.com
8.3 错误:"Please tell me who you are"
原因:没设置用户名和邮箱
解决:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
8.4 错误:"failed to push some refs"
原因:远程有新提交,本地不是最新的
解决:
git pull
# 解决冲突(如果有)
git push
📝 第九章:日常最佳实践清单
9.1 每天开始工作前
# 1. 确保在主分支
git checkout main
# 2. 获取最新代码
git pull
# 3. 创建功能分支
git checkout -b feature/今天要做的功能
9.2 完成一个功能点时
# 1. 查看修改
git status
# 2. 添加相关文件
git add 相关的文件
# 3. 提交
git commit -m "feat: 完成xxx功能"
# 4. 推送到远程
git push
# 如果第一次推送这个分支:
git push -u origin feature/今天要做的功能
9.3 准备合并到主分支前
# 1. 切换回主分支
git checkout main
# 2. 更新主分支
git pull
# 3. 切换回功能分支
git checkout feature/今天要做的功能
# 4. 合并主分支到功能分支(解决可能的冲突)
git merge main
# 5. 推送最终版本
git push
# 6. 在 GitHub 上发起 Pull Request
🎓 第十章:Git 速查表
最常用的 10 个命令
| 命令 | 说明 | 使用频率 |
|---|---|---|
git status | 查看状态 | ⭐⭐⭐⭐⭐ |
git add . | 添加所有修改 | ⭐⭐⭐⭐⭐ |
git commit -m "说明" | 提交修改 | ⭐⭐⭐⭐⭐ |
git push | 推送到远程 | ⭐⭐⭐⭐⭐ |
git pull | 拉取更新 | ⭐⭐⭐⭐⭐ |
git log | 查看历史 | ⭐⭐⭐⭐ |
git branch | 查看分支 | ⭐⭐⭐⭐ |
git checkout -b 分支名 | 创建并切换分支 | ⭐⭐⭐ |
git merge 分支名 | 合并分支 | ⭐⭐⭐ |
git stash | 暂存修改 | ⭐⭐ |
查看历史的几种方式
# 简洁版
git log --oneline
# 图形化
git log --graph --oneline --all
# 查看某个文件的修改历史
git log -p 文件名
💡 最后一章:进阶学习建议
10.1 推荐的学习路径
- 第1周:掌握 add、commit、push、pull
- 第2周:学习分支操作(branch、checkout、merge)
- 第3周:学会解决冲突和回退版本
- 第4周:理解 rebase、stash 等进阶操作
10.2 推荐的 GUI 工具(不想记命令可以用)
- SourceTree(免费,功能强大)
- GitHub Desktop(简单易用)
- VS Code 内置的 Git 功能(推荐)
10.3 学习资源
- 官方文档:git-scm.com/doc
- 练习平台:learngitbranching.js.org/(强烈推荐)
- 视频教程:B站搜索"Git教程"有很多优质资源
🎉 最后的话
记住:Git 不是用来背命令的,而是用来解决问题的工具。刚开始可能会觉得命令记不住,这很正常!我写了这么多年 Git,有些命令还是要现查。
这份教程里的命令,你不需要一次性全记住。收藏起来,遇到问题时回来查,用多了自然就记住了。
如果在使用过程中遇到任何问题,欢迎随时问我。Git 的世界里,每个人都是从零开始的,慢慢来,你一定能掌握!
祝你 Git 使用愉快! 🚀