Gitee 协作与源码发布:把成果变成可分享的开源项目
11. Gitee 协作与源码发布把成果变成可分享的开源项目代码写完、应用上线下一步自然是托管到代码仓库——既做版本备份也方便协作与对外展示。本文用Gitee码云演示完整流程建仓库、用 Access Token 免密推送、写.gitignore、规范提交、最后把整套博客与源码一键发布。所有命令均为本次实战真实用过的。11.1 为什么选 Gitee国内访问快与 GitHub 相比Gitee 在国内网络环境下 clone/push 稳定得多CI、Pages 也都对国内用户友好。免费私有/公开仓库个人项目够用。API 完善支持 Access Token 编程式操作适合自动化。如果你更习惯 GitHub流程完全通用只是把gitee.com换成github.com、Token 换成 GitHub PAT 即可。11.2 创建仓库网页 or API本次我们用API 直接建库自动化场景更省事。先在 Gitee 个人设置 → 私人令牌 生成一个有projects权限的 Token。TOKEN你的私人令牌curl-s-XPOSThttps://gitee.com/api/v5/user/repos?access_token$TOKEN\-HContent-Type: application/json\-d{ name: atomcode-flask-vue, description: 基于 atomcode AI 编程工具开发的 Flask Vue.js 全栈 Web 开发实战留言板 论坛 SPA, private: false, auto_init: true, has_issues: true, has_wiki: true }返回仓库 JSON 即成功。仓库地址https://gitee.com/LiaCin/atomcode-flask-vue。若返回 400多半是同名仓库已存在——可以先GET /repos/{owner}/{repo}查一下。我们实战中就遇到一次确认仓库已存在后直接复用。11.3 用 Token 免密克隆与推送每次输密码太麻烦且 Gitee 已逐步取消密码鉴权Access Token 是标准做法。克隆把 Token 嵌进 URL注意只对可信机器这么做gitclonehttps://LiaCin:你的令牌gitee.com/LiaCin/atomcode-flask-vue.gitcdatomcode-flask-vue更安全的做法是用凭据助手缓存 Token不在命令行留痕gitconfig--globalcredential.helper store# 首次 push 时输入 用户名 令牌之后自动记住Windows / 服务器上我们给 git 配了 Gitee 的 insteadOf让https://gitee.com自动带上凭据省去重复配置。11.4.gitignore别把垃圾推进仓库Flask 项目有几个「绝对不能提交」的东西# Python __pycache__/ *.py[cod] *.egg-info/ .venv/ venv/ # 本地数据库SQLite *.db instance/ # 环境变量 / 密钥 .env config_secret.* # 编辑器 .idea/ .vscode/实战踩坑最初把*.db含测试数据和__pycache__一并打进了 tar 包上传后仓库里混进缓存文件。后来在打包阶段显式排除tar czf x.tar.gz --exclude__pycache__ --exclude*.db --exclude.git干净多了。11.5 目录结构源码与博客同仓我们把两个项目的源码和 22 篇博客放进同一个仓库结构清晰atomcode-flask-vue/ ├── README.md # 系列总索引兼项目说明 ├── message-board/ # 项目一Flask Vue 留言板 │ ├── app.py │ ├── requirements.txt │ └── static/ │ ├── index.html │ ├── app.js │ └── style.css ├── forum/ # 项目二Flask Vue 论坛 SPA │ ├── run.py │ ├── app/ │ │ ├── __init__.py │ │ ├── models.py │ │ ├── routes.py │ │ └── ... │ └── static/ └── blogs/ # 22 篇 CSDN 风格教程 ├── 01-课程总览与技术选型.md ├── ... └── 22-总结从零到上线的全栈流水线.md这样读者clone下来既能跑代码又能顺着博客学一遍。11.6 提交规范让历史可读好的 commit message 是团队协作的礼貌。推荐Conventional Commits风格gitadd-Agitcommit-mfeat: 留言板 FlaskVue 项目 博客系列(1-9) - message-board: FlaskFlask-SQLAlchemyFlask-WTFVue2 留言板由 AtomCode 生成并经人工审查 - blogs: 课程总览/AtomCode部署/HTTP-REST/Webpack/SPA/Flask原理/留言板三篇gitpush-uorigin master类型前缀feat(新功能) /fix(修复) /docs(文档) /refactor(重构) /chore(杂务)。正文用短横列表说明改动方便日后git log --oneline快速回顾。实战中我们分三次提交① 留言板博客1-9 ② 部署实战Gitee两篇 ③ 论坛项目博客12-22。每次提交语义独立历史干净。11.7 分支与协作团队场景单人项目直接master也行但规范做法用分支gitcheckout-bfeature/forum-comment# 开功能分支# ... 开发 ...gitcheckout mastergitmerge feature/forum-comment# 合并回主干gitpush origin masterGitee 上可以开Issue跟踪 bug / 需求提Pull RequestPR做代码评审开Wiki写更长篇的文档配Gitee Pages把blogs/直接渲染成静态站点天然适配 Markdown11.8 一键发布脚本自动化思路手工add/commit/push重复且易漏。把它封装成脚本#!/usr/bin/env bashset-ecd$(dirname$0)/repogitadd-Agitcommit-mdocs: 同步最新博客与源码$(date%Y-%m-%d_%H:%M)||echo无变更gitpush origin masterecho✅ 已推送到 Gitee结合前面 10 篇的部署脚本完整交付链路就是AtomCode 生成代码 → SCP 拉到本地 → 部署到 ECSGunicornSystemdNginx → 公网验证 → 复制进 repo/commit push Gitee → 博客同步发布11.9 把博客搬到 CSDN仓库里的blogs/*.md就是现成的 CSDN 稿件打开 CSDN 编辑器 → 写文章 → 切换Markdown 模式把对应.md全文粘贴进去调整CSDN 对#标题层级、代码块 语言 标注支持良好图片建议用 CSDN 图床把本地截图传上去自动转链设置专栏如「FlaskVue 全栈实战」把 22 篇归到一个专栏阅读体验最佳文末可附在线演示地址两个公网链接Gitee 源码地址提示CSDN 对外链有时限流公网演示地址建议用文字超链不要堆太多跳转。11.10 安全与隐私提醒Token 即密码不要写进代码、不要提交到仓库、不要贴在博客里。本文示例的 Token 均为演示实战中已通过环境变量/凭据助手管理。服务器密码ECS root 密码、数据库密码仅存于部署脚本的临时内存发布博客时务必脱敏。.env不进仓生产配置密钥、数据库 URL走环境变量。11.11 小结至此你拥有了一条完整的产出流水线写代码用AtomCodeAI 辅助headless 批量生成跑应用用Gunicorn Systemd Nginx生产级管代码用Gitee版本、协作、展示写教程用Markdown 博客可直接发 CSDN仓库地址https://gitee.com/LiaCin/atomcode-flask-vue在线演示留言板 http://120.46.128.206 论坛 http://124.71.226.254下一篇起我们进入论坛 SPA 的实战12–22把 Vuex、Vue-Router、用户系统、Markdown、评论、无限加载逐一拆解。