diff --git a/.gitignore b/.gitignore index eb904b7..f6f2407 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ node_modules .env.*.local .DS_Store .cursor +.obsidian .vscode *.tsbuildinfo *.log diff --git a/玩值开发文档/8、部署/Gitea同步说明.md b/玩值开发文档/8、部署/Gitea同步说明.md index 15d06d1..a732f60 100644 --- a/玩值开发文档/8、部署/Gitea同步说明.md +++ b/玩值开发文档/8、部署/Gitea同步说明.md @@ -1,69 +1,65 @@ # 玩值电竞 App → Gitea 同步说明 -> **目标地址(你要迁到的位置)**:(用户 **`fnvtk`** 下的 `wzdj`) -> **当前实际可推送地址**:(已从 GitHub 迁移并保持与本地同步) +> **默认(规范)**:所有同步以 Gitea 用户 **`fnvtk`** 名下仓库 **`wzdj`** 为准。 +> **仓库页**: +> **本地远程名 `gitea`**:`http://fnvtk@192.168.1.201:3000/fnvtk/wzdj.git` -### 为何暂时还不是 `fnvtk/wzdj` - -1. 内网 Gitea 里用户 **`fnvtk` 当前为「未激活」**(`active: false`),向该用户**转移仓库**时服务端会 **HTTP 500**,无法完成迁到 `fnvtk` 名下。 -2. **需要站点管理员**:打开 **管理后台 → 用户 → fnvtk → 启用账号**,保存后再操作转移。 -3. 启用后,在仓库 **yongpxu/wzdj** 页面:**设置 → 转移仓库所有权** → 接收方选 **`fnvtk`**,确认后网页地址即变为 **`/fnvtk/wzdj`**。 -4. 转移完成后,把本地 `gitea` 远程改为(示例,账号按你实际有写权限的填): - `git remote set-url gitea http://192.168.1.201:3000/fnvtk/wzdj.git` - 并在钥匙串/凭证里配置能推送 **fnvtk/wzdj** 的用户(一般为 **fnvtk** 或管理员添加的协作者)。 - -### 推送方式说明(本机已验证) - -- **HTTP**(依赖 macOS 钥匙串里已保存的 `192.168.1.201:3000` 凭证):当前 **`git push gitea main` 正常**。 -- **SSH**(`git@gitea-wzdj:…`,端口 **2222**):对本仓库曾出现 **Internal Server Error**,若需 SSH 请在 Gitea 服务端查日志后再用;在此之前请继续用 HTTP 远程。 - -### 转移完成后(可选) - -- 若曾发起过「待接受」的转移,可用 **`gitea_accept_transfer.sh`**(需 **fnvtk** 有效密码)或直接在网页接受。 - -## 一、远程与分支 +## 一、双远程(默认 fnvtk + 备份) | 远程名 | 地址 | 说明 | |:---|:---|:---| | `origin` | https://github.com/fnvtk/wzdj.git | GitHub 主仓 | -| `gitea` | `http://yongpxu@192.168.1.201:3000/yongpxu/wzdj.git` | Gitea(内网,当前默认可推送;迁至 fnvtk 后请改 URL) | +| **`gitea`** | `http://fnvtk@192.168.1.201:3000/fnvtk/wzdj.git` | **默认**:上传到 **fnvtk** 账号 | +| `gitea-yongpxu` | `http://yongpxu@192.168.1.201:3000/yongpxu/wzdj.git` | **仅备份**:当 `gitea` 认证失败时脚本/钩子会自动改推此处 | 当前默认分支:`main`。 -### 管理员:允许「push 自动新建仓库」(可选) +### 若 `git push gitea main` 报认证失败 -若希望**任意用户**首次 `git push` 到不存在的路径即可建库,需 Gitea **站点管理员**在 `app.ini` 中开启(名称以版本为准): +1. 在 macOS **钥匙串** 中为 `192.168.1.201:3000` 保存 **用户 `fnvtk`** 的有效密码;或 +2. 使用 Gitea **访问令牌** 写入 URL(勿把令牌提交进仓库);或 +3. 请站点管理员确认用户 **`fnvtk` 已激活**,且对 **`fnvtk/wzdj`** 有写权限。 -- `[repository]` 下 **`ENABLE_PUSH_CREATE_USER = true`** +完成前,本仓库的 **`post-commit`** 与 **`sync_to_gitea.sh`** 会先尝试 **`gitea`**,失败则自动推 **`gitea-yongpxu`**,避免断同步。 -未开启时,可用 **`gitea_api_create_user_repo.sh`**(默认在 **fnvtk** 名下建库)先建空库再推送。 +### 从 yongpxu 迁到 fnvtk(管理员一次性操作) + +若历史上仓库在 **`yongpxu/wzdj`**:在 Gitea 网页 **设置 → 转移仓库所有权** → 接收方 **`fnvtk`**。转移后仍以本表 **`gitea`** 地址为准;备份远程可按需删除。 ## 二、自动同步(推荐) -- **每次 commit 后**:已配置 `post-commit` 钩子,自动执行 `git push gitea main`,把最新提交推到 Gitea。 -- 若推送失败(如网络/SSL),可稍后手动执行下面「手动同步」。 +- **每次 commit 后**:`.git/hooks/post-commit` 会先 `git push gitea`,失败再 `git push gitea-yongpxu`。 +- 若推送失败(如网络),可稍后手动执行「三、手动同步」。 ## 三、手动同步 在项目根目录执行: ```bash -# 方式一:只推送(已有提交) -git push gitea main - -# 方式二:先提交再推送(有未提交变更时) +# 推荐:脚本内已含「先 fnvtk、失败再 yongpxu」 bash "玩值开发文档/8、部署/sync_to_gitea.sh" + +# 或只推送(需已有提交) +git push gitea main || git push gitea-yongpxu main ``` ## 四、SSL/TLS 问题说明 若本机出现 `error:1404B42E:SSL routines:ST_CONNECT:tlsv1 alert protocol version`: -- 在**能访问 Gitea 的网络环境**下再执行 `git push gitea main`(如公司网络、或配置好代理的终端)。 -- 或使用已配置 OpenSSL 的 Git(如 `brew install git` 后用 `/usr/local/bin/git`)再试。 +- 在**能访问 Gitea 的网络环境**下再执行推送。 +- 或使用已配置 OpenSSL 的 Git(如 `brew install git`)再试。 ## 五、检查是否已同步 -- 迁移完成前可看: -- 迁移完成后可看: +- **主仓(默认)**: +- 备份: - 提交时间应与本地 `git log -1` 一致。 + +## 六、允许「push 自动新建仓库」(可选) + +若希望首次 `git push` 到不存在的路径即可建库,需 Gitea **站点管理员**在 `app.ini` 中开启(名称以版本为准): + +- `[repository]` 下 **`ENABLE_PUSH_CREATE_USER = true`** + +未开启时,可先在 **fnvtk** 名下建空库再推送。 diff --git a/玩值开发文档/8、部署/sync_to_gitea.sh b/玩值开发文档/8、部署/sync_to_gitea.sh index 5ddc3f2..8e3ce41 100755 --- a/玩值开发文档/8、部署/sync_to_gitea.sh +++ b/玩值开发文档/8、部署/sync_to_gitea.sh @@ -5,7 +5,7 @@ set -e REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)" cd "$REPO_ROOT" -REMOTE="gitea" +# 默认推 Gitea 用户 fnvtk 名下 wzdj(remote 名 gitea);失败则推 gitea-yongpxu(yongpxu/wzdj 备份) BRANCH="$(git branch --show-current)" # 可选:代理(若直连 Gitea 失败) @@ -19,5 +19,10 @@ else git commit -m "$COMMIT_MSG" echo "[sync_to_gitea] 已提交:$COMMIT_MSG" fi -git push "$REMOTE" "$BRANCH" -echo "[sync_to_gitea] 已推送到 gitea/$BRANCH → 当前 http://192.168.1.201:3000/yongpxu/wzdj (目标迁至 http://192.168.1.201:3000/fnvtk/wzdj )" +if git push gitea "$BRANCH"; then + echo "[sync_to_gitea] 已推送到 fnvtk → http://192.168.1.201:3000/fnvtk/wzdj" +else + echo "[sync_to_gitea] fnvtk 推送失败,改推 gitea-yongpxu(备份)…" + git push gitea-yongpxu "$BRANCH" + echo "[sync_to_gitea] 已推送到 yongpxu 备份 → http://192.168.1.201:3000/yongpxu/wzdj(请尽快配置 fnvtk 凭证后改推 gitea)" +fi