一句话结论:通过“规范化提交 + 标准化工作流 + 自动化钩子”,构建透明、可追溯且高安全的团队协作基石。
1. GitHub 实战:从私有项目到版本控制全流程
为了让 Git 真正落地到你的 GitHub 日常开发中,我们将通过四个最真实的场景,手把手带你完成从“创建项目”到“后悔药(回退)”的全过程。
场景一:从零开始创建私有项目
无论你是想写个个人 Demo 还是团队私有组件,第一步都是建立连接。
方式 A:先有远程,再有本地(推荐:最简单)
1. GitHub 操作:点击右上角 `+` → `New repository`。
-
Name: 填写项目名。
-
Visibility: 务必勾选 Private。
-
Initialize: 勾选 `Add a README file`。
2. 本地连接:
-
复制仓库 HTTPS/SSH 地址。
-
终端执行:
git clone <仓库地址>。
方式 B:本地已有代码,想上传到 GitHub
1. GitHub 操作:同上创建私有仓库,但不要勾选 `Initialize with README`(保持仓库为空)。
2. 本地连接:
cd 你的项目文件夹
git init
git add .
git commit -m "feat: 首次初始化项目"
git branch -M main
git remote add origin <仓库地址>
git push -u origin main
场景二:日常开发“三部曲”
1. 修改代码:在编辑器里完成开发。
2. 暂存与提交:
git status # 查看哪些文件变了
git add . # 加入暂存区
git commit -m "feat: 增加用户登录接口"
3. 上传云端:
git push origin main
场景三:后悔药——各种阶段的回退
| 你的处境 | 对应的“后悔药” | 命令示例 |
|---|---|---|
| 还没 add:改乱了想回到初始状态 | checkout | git checkout – |
| 已经 add 还没 commit:想撤回暂存区 | reset | git reset HEAD |
| 已经 commit 还没 push:想撤销提交 | reset --soft | git reset --soft HEAD~1 |
| 已经 push 到 GitHub**:想撤销某次提交(保留历史) | revert | git revert |
场景四:团队协作与冲突处理
1. 拉取最新代码:`git pull origin main`。
2. 处理冲突:找到 `<<<<<<<` 标记,手动修改后重新 `add` 和 `commit`。
2. 核心概念与基础标准
Git 的本质是一个基于快照的内容寻址文件系统。理解其四个工作区域是所有操作的前提:
- Workspace (工作区):你正在编辑的文件。
- Index (暂存区):准备提交的快照,由 `git add` 生成。
- Repository (本地仓库):保存所有版本历史,由 `git commit` 生成。
- Remote (远程仓库):团队协作的中心,由 `git push/pull` 同步。
基础配置与别名(Efficiency)
# 推荐别名配置
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm "commit -m"
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
3. 分支管理策略:选型与 SOP
| 维度 | Git Flow | GitHub Flow (推荐) |
|---|---|---|
| 复杂度 | 高 (5类分支) | 低 (1类主分支 + 特性分支) |
| 适用场景 | 传统软件发布 | SaaS、Web 服务、开源项目 |
GitHub Flow 实战 SOP
1. 创建特性分支:从 `main` 切出 `feature/`。
2. 提交并推送:开发完成后推送至远程。
3. 发起 PR:在网页端发起 Pull Request。
4. Code Review:审核通过后合并入 `main`。
4. 提交规范:Conventional Commits
格式:`(): `
- feat: 新功能
- fix: 修复 Bug
- docs: 文档变更
- refactor: 代码重构
- chore: 构建/工具变动
5. 自动化与约束:Git Hooks
示例:提交消息校验 (commit-msg)
#!/usr/bin/env bash
commit_msg=$(cat $1)
pattern="^(feat|fix|docs|style|refactor|perf|test|chore)(\(.*\))?: .+$"
if [[ ! $commit_msg =~ $pattern ]]; then
echo "Error: 提交信息格式不符合规范!"
exit 1
fi
6. 高级主题:LFS 与回退
大文件存储 (Git LFS)
git lfs install
git lfs track "*.psd"
git add .gitattributes
冲突解决 SOP
1. 保持同步:合并前先 `git pull`。
2. 定位冲突:查找冲突标记。
3. 手动合并:解决后 `git add` → `git commit`。
7. 团队协作与安全策略
1. 保护分支:禁止强制推送,开启 PR 强制评审。
2. 敏感信息:使用 `.gitignore`。若泄露,用 `git-filter-repo` 清理历史。
总结
好的 Git 习惯是项目长期健康运行的保障。
行动清单:
-
创建并配置私有仓库。
-
熟悉“三部曲”提交工作流。
-
掌握
reset与revert的区别。 -
在项目中引入 Conventional Commits 规范。