河南理工大学人工智能协会 Gitea 使用教程
为什么选择 Gitea?
协会自建 Gitea 是我们内部的代码托管平台,托管在阿里云国内服务器上,相比 GitHub 和 Gitee 有以下几个优势:
| 特性 | 协会 Gitea | GitHub | Gitee |
|---|---|---|---|
| 访问速度 | 国内服务器,秒开 | 时常被限速 | 审核严格 |
| 数据控制 | 协会自主管理 | 美国服务器 | 第三方托管 |
| 私有仓库 | 无限免费 | 免费但有协作人数限制 | 免费 |
| CI/CD | Gitea Actions(类 GitHub Actions) | GitHub Actions 付费 | 企业版才开放 |
| 学习价值 | 了解自托管平台运维 | — | — |
简而言之:速度快、无限制、数据自主可控,非常适合协会内部项目和课程协作。
环境准备
1. 注册账号
访问 gitea.liuhangyv.top,点击右上角「注册」,填写用户名、邮箱和密码即可。
2. 安装 Git
前往 git-scm.com 下载 Windows 版 Git,安装时保持默认选项即可。
安装完成后,打开 PowerShell 或 CMD,验证安装:
git --version
# 输出示例:git version 2.47.0
3. 生成 SSH 密钥
SSH 密钥用于免密推送代码。在 PowerShell 中执行:
ssh-keygen -t ed25519 -C "你的邮箱@example.com"
按提示一路回车即可(使用默认路径 C:\Users\你的用户名\.ssh\id_ed25519)。
生成后,查看公钥内容:
cat ~/.ssh/id_ed25519.pub
4. 配置 SSH 连接
在 ~/.ssh/config 文件中添加以下内容(没有则新建):
Host gitea.liuhangyv.top
HostName 101.133.128.193
Port 222
User git
IdentityFile ~/.ssh/id_ed25519
说明:协会 Gitea 的 SSH 端口为 222(非默认的 22),此配置将域名映射到正确的地址和端口。
5. 上传公钥到 Gitea
- 登录 Gitea,点击右上角头像 → 设置
- 选择 SSH / GPG 密钥 → 添加密钥
- 将
id_ed25519.pub的内容粘贴进去,点击保存
验证连接是否成功:
ssh -T git@gitea.liuhangyv.top
# 出现类似 "Hi there, 你的用户名!" 即为成功
日常工作流
克隆仓库
git clone git@gitea.liuhangyv.top:Serendipity/MetaRL.git
cd MetaRL
创建分支
开发新功能前,从 main 创建特性分支:
git checkout -b feature/你的功能名
提交代码
# 查看改动
git status
# 暂存文件
git add .
# 提交(使用约定式提交格式)
git commit -m "feat: 添加 DQN 训练模块"
提交类型速查:feat(新功能)、fix(修复)、docs(文档)、refactor(重构)、test(测试)、chore(杂项)
推送到远程
git push origin feature/你的功能名
发起 Pull Request
- 访问仓库页面,点击 Pull Requests → 新建 Pull Request
- 选择源分支(你的功能分支)和目标分支(通常是
main) - 填写标题和描述,说明改了什么、为什么这样改
- 提交后等待审查
同步上游代码
在合并 PR 前,保持分支与 main 同步:
git checkout main
git pull origin main
git checkout feature/你的功能名
git rebase main
Issues 使用指南
Issues 是协作沟通的核心,用于报告 Bug、提出需求、讨论方案。
创建 Issue
- 进入仓库 → Issues → 新建 Issue
- 选择标签:
bug/enhancement/question/documentation - 填写标题和详细描述,附带截图或日志更佳
一个好的 Issue 长什么样
Bug 类:
标题:DQN 训练到 1000 步后 loss 突变为 NaN
描述:使用
python train.py --env CartPole-v1 --steps 5000,在第 1024 步出现 loss=NaN。已尝试调小学习率(1e-4 → 1e-5),问题仍存在。日志见附件。
需求类:
标题:添加 PPO 算法实现
描述:希望新增 Proximal Policy Optimization 算法,参考论文 arXiv:1707.06347。我可以负责写 actor-critic 网络部分。
协会仓库一览
目前协会 Gitea 上托管了以下仓库:
| 仓库 | 说明 |
|---|---|
| MetaRL | 元强化学习研究项目,支持多种 RL 算法实现与对比实验 |
后续还将陆续上线更多课程项目和竞赛代码仓库。欢迎同学们将自己的项目上传到协会 Gitea!
常见问题
Q: Permission denied (publickey) 怎么办?
- 确认公钥已上传到 Gitea(设置 → SSH/GPG 密钥)
- 确认
~/.ssh/config配置正确(端口是 222) - 确认私钥路径正确:
IdentityFile ~/.ssh/id_ed25519
Q: push 时提示 rejected: failed to push some refs?
说明远程分支有你本地没有的提交,先 git pull origin main 拉取最新代码,解决冲突后再 push。
Q: 合并时遇到冲突怎么处理?
- 打开冲突文件,找到
<<<<<<</=======/>>>>>>>标记 - 手动选择保留哪部分代码
- 删除冲突标记,保存文件
git add .→git commit→git push
Q: 如何把本地已有项目上传到 Gitea?
cd 你的项目目录
git init
git add .
git commit -m "chore: 初始化项目"
git remote add origin git@gitea.liuhangyv.top:你的用户名/仓库名.git
git push -u origin main
注意:需要先在 Gitea 网页端创建空仓库。
结语
协会 Gitea 是我们共同的代码家园。通过 Git 版本控制,你可以轻松回溯代码历史、与队友并行开发、通过 PR 互相审查代码——这些都是未来工作和科研中必不可少的技能。
有任何问题,欢迎在 Gitea 上提 Issue,或者直接在协会群里提问。
评论交流
欢迎留下你的想法