河南理工大学人工智能协会 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

  1. 登录 Gitea,点击右上角头像 → 设置
  2. 选择 SSH / GPG 密钥添加密钥
  3. 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

  1. 访问仓库页面,点击 Pull Requests新建 Pull Request
  2. 选择源分支(你的功能分支)和目标分支(通常是 main
  3. 填写标题和描述,说明改了什么、为什么这样改
  4. 提交后等待审查

同步上游代码

在合并 PR 前,保持分支与 main 同步:

git checkout main
git pull origin main
git checkout feature/你的功能名
git rebase main

Issues 使用指南

Issues 是协作沟通的核心,用于报告 Bug、提出需求、讨论方案

创建 Issue

  1. 进入仓库 → Issues新建 Issue
  2. 选择标签:bug / enhancement / question / documentation
  3. 填写标题和详细描述,附带截图或日志更佳

一个好的 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) 怎么办?

  1. 确认公钥已上传到 Gitea(设置 → SSH/GPG 密钥)
  2. 确认 ~/.ssh/config 配置正确(端口是 222)
  3. 确认私钥路径正确:IdentityFile ~/.ssh/id_ed25519

Q: push 时提示 rejected: failed to push some refs

说明远程分支有你本地没有的提交,先 git pull origin main 拉取最新代码,解决冲突后再 push。

Q: 合并时遇到冲突怎么处理?

  1. 打开冲突文件,找到 <<<<<<< / ======= / >>>>>>> 标记
  2. 手动选择保留哪部分代码
  3. 删除冲突标记,保存文件
  4. git add .git commitgit 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,或者直接在协会群里提问。