chore(gitea): 默认远程 fnvtk/wzdj;同步脚本先主后备;排除 .obsidian;更新同步说明

Made-with: Cursor
This commit is contained in:
卡若
2026-04-14 16:41:59 +08:00
parent b95d1a94c6
commit 291f31b627
3 changed files with 41 additions and 39 deletions

1
.gitignore vendored
View File

@@ -5,6 +5,7 @@ node_modules
.env.*.local
.DS_Store
.cursor
.obsidian
.vscode
*.tsbuildinfo
*.log

View File

@@ -1,69 +1,65 @@
# 玩值电竞 App → Gitea 同步说明
> **目标地址(你要迁到的位置)**<http://192.168.1.201:3000/fnvtk/wzdj>(用户 **`fnvtk`** 下的 `wzdj`
> **当前实际可推送地址**<http://192.168.1.201:3000/yongpxu/wzdj>(已从 GitHub 迁移并保持与本地同步)
> **默认(规范)**:所有同步以 Gitea 用户 **`fnvtk`** 名下仓库 **`wzdj`** 为准。
> **仓库页**<http://192.168.1.201:3000/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`)再试。
## 五、检查是否已同步
- 迁移完成前可看<http://192.168.1.201:3000/yongpxu/wzdj>
- 迁移完成后可看<http://192.168.1.201:3000/fnvtk/wzdj>
- **主仓(默认)**<http://192.168.1.201:3000/fnvtk/wzdj>
- 备份<http://192.168.1.201:3000/yongpxu/wzdj>
- 提交时间应与本地 `git log -1` 一致。
## 六、允许「push 自动新建仓库」(可选)
若希望首次 `git push` 到不存在的路径即可建库,需 Gitea **站点管理员**在 `app.ini` 中开启(名称以版本为准):
- `[repository]`**`ENABLE_PUSH_CREATE_USER = true`**
未开启时,可先在 **fnvtk** 名下建空库再推送。

View File

@@ -5,7 +5,7 @@
set -e
REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
cd "$REPO_ROOT"
REMOTE="gitea"
# 默认推 Gitea 用户 fnvtk 名下 wzdjremote 名 gitea失败则推 gitea-yongpxuyongpxu/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