🧠 Git 从入门到精通(开源协作特别版)
✅ 基础命令 + 🧰 高级用法 + 🛠️ 开源实战技巧 + 🌍 GitHub 社区协作
适合:从0开始 → 熟练开发者 → 参与/维护开源项目
🔰 第1章:Git 基础与本地操作
1.1 安装与配置
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
1.2 初始化仓库
git init
1.3 添加和提交代码
git add .
git commit -m "第一次提交"
1.4 查看日志与状态
git status
git log
git diff # 查看未提交的差异
git diff --cached # 查看已暂存的差异
🔁 第2章:远程仓库与 GitHub
2.1 添加远程仓库
git remote add origin https://github.com/你/仓库名.git
2.2 推送与拉取代码
git push -u origin master # 第一次推送并绑定
git pull # 拉取远程更改
2.3 .gitignore
文件
忽略不需要上传的文件:
node_modules/
.env
__pycache__/
*.log
🌿 第3章:分支管理与协作
3.1 本地分支操作
git branch new-feature # 创建分支
git checkout new-feature # 切换分支
git merge new-feature # 合并到当前分支
git branch -d new-feature # 删除分支
3.2 遇到冲突怎么办?
- Git 会在冲突文件中插入
<<<<<<<
、=======
、>>>>>>>
- 手动解决后:
git add 冲突文件
git commit
👥 第4章:开源协作场景技巧
📦 4.1 Fork + Clone 模式(开源常用)
- 在 GitHub 上
Fork
原项目到自己的账户 - 克隆自己的仓库:
git clone https://github.com/你的用户名/项目名.git
- 添加上游仓库(原作者仓库):
git remote add upstream https://github.com/原作者名/项目名.git
- 获取更新:
git fetch upstream
git merge upstream/main
🔀 4.2 提交 Pull Request(贡献代码流程)
典型的开源项目协作流程:
Fork → 新建分支 → 修改代码 → Commit → Push → 提交 Pull Request
详细步骤:
- 创建新分支:
git checkout -b fix-issue-123
- 修改代码并提交:
git add .
git commit -m "修复了 issue #123"
- 推送到你的远程分支:
git push origin fix-issue-123
- 打开 GitHub 提交 PR(Pull Request) → 填写描述、关联 issue
🛠️ 第5章:开源项目维护实践
5.1 使用 README.md
包含:
- 项目简介
- 安装方式
- 使用方法
- 示例截图或 Demo
- 贡献指南(贡献者如何参与)
- License
5.2 添加 LICENSE
推荐:
- MIT(自由度高,适合个人项目)
- Apache 2.0(商业友好)
- GPL(强制开源)
5.3 编写贡献说明 CONTRIBUTING.md
建议内容:
- 提交 PR 前的步骤
- 分支命名规范
- 代码风格要求
- 是否需要写测试
5.4 提交模板(Issue / PR)
在 .github/ISSUE_TEMPLATE/
中添加:
- bug_report.yml
- feature_request.yml
5.5 GitHub Actions 自动化
- 自动测试
- 自动构建发布版本
- 自动格式化检查(如 ESLint, black)
💡 第6章:Git 高阶操作
6.1 reset / revert(版本回退)
git reset --soft HEAD^ # 回退上一次提交,保留修改
git reset --hard HEAD^ # 强制回退
git revert 提交ID # 创建新的提交来撤销
6.2 stash(保存现场)
git stash # 暂存当前更改
git stash list
git stash pop # 恢复更改
6.3 Git rebase(清理提交记录)
git rebase main
适合整理提交,让历史更清晰(配合 interactive rebase
)
🔐 第7章:安全与敏感信息保护
- 使用
.gitignore
忽略.env
- 使用 git-secrets 防止提交秘钥
- 如果泄露了秘钥,可使用:
git filter-branch --force --index-filter ...
🌍 第8章:推广和社区建设
8.1 给项目加标签(topics)
如:machine-learning
、python
、api
8.2 加入开源组织
如 GitHub orgs、开源之夏、OpenCollective
8.3 README 添加徽章(Badges)
- 构建状态
- License
- 下载量
- 开源协议
示例:

🧭 推荐工具
- Git 图形工具:GitKraken / GitHub Desktop / SourceTree
- CLI 增强工具:
tig
、lazygit
- VS Code 插件:GitLens / Git Graph
📚 附加资源
类型 | 资源 |
---|---|
官方文档 | git-scm.com |
可视化教程 | learngitbranching.js.org |
中文教程 | 廖雪峰 Git 教程 |
开源项目指南 | GitHub Docs |