🧠 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 |