docs: 记录 Gitea 远端接入方式
- STATUS.md:Gitea 接入标记完成,补充远端/分支/推送通道信息; 新增决策 19(SSH 走 Tailscale 内网)与 20(首次推送 force-with-lease 的取舍) - docs/05-git-workflow.md:第三节改写为实际拓扑(公网 22 被过滤、 走 Tailscale + ~/.ssh/config 域名别名),补自检、日常推送、换机步骤, 并保留仓库归属注意、补充可见性与协作者说明; 回滚一节记录被覆盖提交的恢复命令
This commit is contained in:
1 parent
96080b9dcc
commit
bcdbdd35a3
2 files changed
+72
-32
No files matched your search
+60
-26
@@ -67,40 +67,73 @@ git commit -m "feat(stats): 实现 bootstrap_ci"
|
||||
|
||||
---
|
||||
|
||||
## 三、推到自己的 Gitea
|
||||
## 三、远程托管(已配置)
|
||||
|
||||
### 1. 在 Gitea 上建空仓库
|
||||
| 项 | 值 |
|
||||
|---|---|
|
||||
| Gitea 网页 | https://code.guzhujushi.cn/guzhujushi/MCM-ICM_Toolkit |
|
||||
| 服务器公网 IP | `8.145.36.108`(实测只开了 443,**22 被防火墙过滤**) |
|
||||
| 服务器 Tailscale IP | `100.115.86.48`(22 开放) |
|
||||
| 本机 Tailscale IP | `100.124.243.30` |
|
||||
| git 远端 | `git@code.guzhujushi.cn:guzhujushi/MCM-ICM_Toolkit.git` |
|
||||
|
||||
不要勾选"初始化仓库"(不要生成 README / .gitignore / LICENSE),
|
||||
否则首次 push 会冲突。
|
||||
### 为什么走 Tailscale
|
||||
|
||||
### 2. 加远程并推送
|
||||
公网 22 端口连不上(`ssh: connect to host code.guzhujushi.cn port 22: Connection timed out`),
|
||||
但同一台机器的 Tailscale 地址 22 端口是通的,且 `git@` 认证直接通过 Gitea。
|
||||
所以 `~/.ssh/config` 里加了一条别名把域名指到内网地址:
|
||||
|
||||
```sshconfig
|
||||
Host code.guzhujushi.cn
|
||||
HostName 100.115.86.48
|
||||
User git
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
```
|
||||
|
||||
这样 remote 里写的是域名,换机时只改这一段 config,不用动仓库配置。
|
||||
|
||||
**推送前先连上 Tailscale**,否则 `git push` 会一直等到超时。
|
||||
|
||||
### 自检
|
||||
|
||||
```powershell
|
||||
ssh -T git@code.guzhujushi.cn
|
||||
# 期望输出:Hi there, guzhujushi! You've successfully authenticated with the key named ...
|
||||
```
|
||||
|
||||
### 日常推送
|
||||
|
||||
```powershell
|
||||
cd D:\MCM&ICM_Toolkit
|
||||
|
||||
# 换成你自己的 Gitea 地址
|
||||
git remote add origin https://git.你的域名/用户名/mcm-icm-toolkit.git
|
||||
|
||||
# 如果 Gitea 用的是自签证书,先在浏览器里访问一次并信任,或:
|
||||
# git config --global http.sslBackend schannel
|
||||
|
||||
git branch -M main
|
||||
git push -u origin main
|
||||
git add -A
|
||||
git commit -m "feat(stats): 实现 bootstrap_ci"
|
||||
git push
|
||||
```
|
||||
|
||||
### 3. 用 SSH(推荐,免密)
|
||||
### 换一台机器 / 加一个协作者
|
||||
|
||||
```powershell
|
||||
ssh-keygen -t ed25519 -C "guzhu@mcm-toolkit"
|
||||
# 1) 装 Tailscale 并加入同一个 tailnet
|
||||
# 2) 生成并上传密钥
|
||||
ssh-keygen -t ed25519 -C "your@email"
|
||||
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" | Set-Clipboard
|
||||
# 粘贴到 Gitea → 设置 → SSH/GPG 密钥
|
||||
|
||||
git remote set-url origin git@git.你的域名:用户名/mcm-icm-toolkit.git
|
||||
git push -u origin main
|
||||
# 粘贴到 Gitea → 设置 → SSH/GPG 密钥
|
||||
# 3) 写上面的 ~/.ssh/config 别名
|
||||
# 4) 克隆
|
||||
git clone git@code.guzhujushi.cn:guzhujushi/MCM-ICM_Toolkit.git
|
||||
```
|
||||
|
||||
### 4. 仓库归属注意(重要)
|
||||
不想用 Tailscale 的话,也可以用 HTTPS + Gitea 访问令牌,
|
||||
代价是每次推送要输凭据(或交给凭据助手缓存):
|
||||
|
||||
```powershell
|
||||
git remote add origin https://code.guzhujushi.cn/guzhujushi/MCM-ICM_Toolkit.git
|
||||
```
|
||||
|
||||
> 注意:`git config --global http.proxy` 目前指向 UniClash(`127.0.0.1:7993`),
|
||||
> HTTPS 方式会被代理绕一圈;SSH 方式不受该配置影响。
|
||||
|
||||
### 仓库归属注意(重要)
|
||||
|
||||
`.git` 必须是**你自己的账户**创建的。若用沙箱化的 AI agent 通道代跑 `git init`,
|
||||
它可能以别的账户身份创建 `.git`,之后你自己跑 git 就会报:
|
||||
@@ -118,12 +151,10 @@ git push -u origin main
|
||||
同理,沙箱通道写出的文件 Owner 会是沙箱账户,但权限继承自
|
||||
`Authenticated Users`(Modify),读写不受影响,只有 git 的归属检查会误报。
|
||||
|
||||
### 5. 如果不想公开
|
||||
### 可见性与协作者
|
||||
|
||||
Gitea 建仓库时选 **Private**。队友通过
|
||||
仓库设置 → 协作者 → 添加成员 授权。
|
||||
|
||||
---
|
||||
匿名 `git ls-remote` 实测可读 → 仓库当前是 **Public**。要改私有:
|
||||
仓库设置 → 基本设置 → 可见性。加队友:仓库设置 → 协作者 → 添加成员。
|
||||
|
||||
## 四、给队友的说明
|
||||
|
||||
@@ -146,6 +177,9 @@ cd mcm-icm-toolkit
|
||||
环境升级出问题时的回退手段:
|
||||
|
||||
```powershell
|
||||
# 远端被覆盖过一次(首次推送),那个提交仍在本机对象库里:
|
||||
# git push origin 1c683cf:refs/heads/restore-initial
|
||||
|
||||
# conda 自己保留了 revision 历史
|
||||
conda list -n base --revisions
|
||||
conda install -n base --revision <N>
|
||||
|
||||
Reference in new issue
Block a user