30- Git 与 GitHub 项目管理 📦
前提条件 ✅
- 已完成自动化部署与镜像管理(Packer + Ansible 流程已建立)
- 以 ops 用户登录(具有 sudo 权限)
- 系统运行在 Debian 12 Bookworm
- 需要 GitHub 账号(建议创建个人或组织账号,用于后续协作)
- 全局约定:主机名 LinuxDC,IP 192.168.1.100
详细步骤 🛠️
- 安装 Git 并基本配置
sudo apt update
sudo apt install -y git
git --version
全局配置(只执行一次):
git config --global user.name "Ops User"
git config --global user.email "ops@linuxdc.local"
git config --global core.editor "vim"
git config --global init.defaultBranch main
git config --list
- 创建本地仓库与基本操作
mkdir ~/my-project && cd ~/my-project
git init
echo "# My First Project" > README.md
git add README.md
git commit -m "Initial commit: add README"
查看状态与历史:
git status
git log --oneline --graph
- 连接 GitHub 远程仓库
在 GitHub 网站创建新仓库(例如 my-project,不要初始化 README)
添加远程并推送:
git remote add origin git@github.com:你的用户名/my-project.git
# 或 HTTPS:git remote add origin https://github.com/你的用户名/my-project.git
git branch -M main
git push -u origin main
- SSH 密钥认证(推荐,避免每次输入密码)
生成密钥对:
ssh-keygen -t ed25519 -C "ops@linuxdc.local"
# 默认回车保存到 ~/.ssh/id_ed25519
添加公钥到 GitHub:
cat ~/.ssh/id_ed25519.pub
# 复制内容 → GitHub → Settings → SSH and GPG keys → New SSH key
测试:
ssh -T git@github.com
# 成功显示:Hi username! You've successfully authenticated...
-
常用 Git 工作流(生产级推荐)
-
分支模型(Git Flow 简化版):
- main:生产分支,只合并已测试代码
- develop:开发集成分支
- feature/*:新功能
- hotfix/*:紧急修复
示例:
git checkout -b feature/add-backup-script
# 修改文件...
git add .
git commit -m "feat: add daily backup script"
git push origin feature/add-backup-script
创建 Pull Request(GitHub 网页操作),Review 后合并到 develop/main。
-
Git 高级技巧(运维常用)
-
忽略文件(.gitignore):
echo "*.log" >> .gitignore echo "/backup/" >> .gitignore git add .gitignore git commit -m "chore: add .gitignore" -
回滚提交:
git log --oneline git revert HEAD # 撤销最新提交 git reset --hard HEAD~1 # 危险!彻底丢弃最新提交 -
子模块(管理多个仓库):
git submodule add https://github.com/用户名/ansible-roles.git roles/external git submodule update --init --recursive -
标签(版本标记):
git tag -a v1.0.0 -m "Release v1.0.0" git push origin v1.0.0 -
GitHub 项目管理最佳实践
-
使用 Issues + Projects(Kanban 看板)跟踪任务
- Pull Request Template(创建 .github/pull_request_template.md)
- GitHub Actions(CI/CD):后续可扩展自动化测试、部署
- 保护 main 分支:Settings → Branches → Add rule → Require pull request reviews
实践任务 🎯
- 创建 GitHub 仓库 my-debian-ops,克隆到本地,添加 README.md 并推送
- 配置 SSH 密钥,验证 git push 无需密码
- 创建 feature/add-logrotate 分支,添加 logrotate 配置文件,提交并推送,创建 Pull Request
- 在本地模拟冲突:修改同一文件不同行,pull → 手动解决冲突 → commit → push
自测问题 ❓
- git config --global init.defaultBranch main 的作用是什么?
- SSH 密钥认证相比 HTTPS 的主要优势是什么?
- git revert 和 git reset 的区别是什么?什么时候用哪个?
- 为什么生产环境中建议保护 main 分支并要求 Pull Request 审核?
总结 📌
Git + GitHub 是现代运维协作、版本控制、配置即代码的核心工具。
本章建立了从本地仓库 → 远程协作 → 分支工作流 → 项目管理的完整流程。
后续考点总结、学习计划、运维文档都将直接使用 Git 仓库管理,实现知识与配置的可追溯、可协作、可审计。