Phase 0-2: Schema cleanup, typed relations, event-driven automation
- Phase 0: AGENTS.md cleanup (dedup quotes, renumber sections, merge qmd) - Phase 1: typed relations (manage-relations.py, graph-search.py, check-staleness.py, detect-conflicts.py) - Phase 2: frontmatter validator, weekly lint, knowledge promotion, git hooks - Fix .gitignore to track tools/ and .githooks/ - Fix git remote URL (remove plaintext token) - New wiki pages: 504 pages, 34 raw sources
This commit is contained in:
+322
@@ -0,0 +1,322 @@
|
||||
---
|
||||
categories:
|
||||
- "[[LLM Wiki]]"
|
||||
tags:
|
||||
- wiki
|
||||
- tool
|
||||
- git
|
||||
- version-control
|
||||
created: 2026-04-07
|
||||
source: "[[Gitea个人Git服务部署指南]]"
|
||||
type: tool
|
||||
aliases:
|
||||
- Gitea 使用指南
|
||||
- Gitea 配置
|
||||
---
|
||||
|
||||
# Gitea
|
||||
|
||||
> **一句话描述**:轻量级、自托管的 Git 托管服务
|
||||
|
||||
## 基本信息
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 官网 | <https://gitea.io> |
|
||||
| 类型 | Git 托管服务 |
|
||||
| 开源 | ✅ 是 |
|
||||
|
||||
## 在 LLM Wiki 中的角色
|
||||
|
||||
用于托管 Obsidian vault 的 Git 版本控制,提供:
|
||||
|
||||
- 远程仓库备份
|
||||
- 版本历史追踪
|
||||
- 团队协作能力
|
||||
- API 访问(通过 Access Token)
|
||||
|
||||
## 基础配置流程
|
||||
|
||||
### 1. 初始化本地仓库
|
||||
|
||||
```bash
|
||||
cd /path/to/your/repo
|
||||
git init
|
||||
```
|
||||
|
||||
### 2. 创建 .gitignore
|
||||
|
||||
Obsidian vault 的推荐 `.gitignore`:
|
||||
|
||||
```gitignore
|
||||
# Obsidian
|
||||
.obsidian/workspace.json
|
||||
.obsidian/workspace-mobile.json
|
||||
|
||||
# 导出文件
|
||||
*.pdf
|
||||
*.html
|
||||
*.pptx
|
||||
|
||||
# 临时文件
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
```
|
||||
|
||||
### 3. 配置远程仓库
|
||||
|
||||
```bash
|
||||
git remote add origin https://git.haiguang.xyz/username/repo.git
|
||||
```
|
||||
|
||||
### 4. Access Token 认证
|
||||
|
||||
创建 Access Token(推荐方式):
|
||||
|
||||
1. 登录 Gitea
|
||||
2. 进入设置 → Applications → Access Tokens
|
||||
3. 创建新 Token,勾选需要的权限(如 `read/write`)
|
||||
4. 使用 Token 推送:
|
||||
|
||||
```bash
|
||||
# 方式 1:在 URL 中包含 Token
|
||||
git remote set-url origin https://<token>@git.haiguang.xyz/username/repo.git
|
||||
|
||||
# 方式 2:使用 Git Credential Manager
|
||||
git push # 会提示输入用户名和 Token
|
||||
```
|
||||
|
||||
**重要**:
|
||||
- ✅ 推荐:使用 Token 而非密码
|
||||
- ✅ Token 权限应最小化原则
|
||||
- ❌ 不要将 Token 硬编码到脚本中
|
||||
|
||||
## 首次推送
|
||||
|
||||
```bash
|
||||
# 创建初始分支(如果需要)
|
||||
git checkout -b main
|
||||
|
||||
# 添加所有文件
|
||||
git add .
|
||||
|
||||
# 创建初始提交
|
||||
git commit -m "Initial commit"
|
||||
|
||||
# 推送到远程
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
## 常见问题排查
|
||||
|
||||
### 问题 1:`.git/config` 文件损坏
|
||||
|
||||
**错误**:
|
||||
```
|
||||
fatal: bad config line 1 in file .git/config
|
||||
```
|
||||
|
||||
**原因**:写入操作失败或手动编辑错误
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 删除损坏的配置
|
||||
rm .git/config
|
||||
|
||||
# 重新配置
|
||||
git config user.name "Your Name"
|
||||
git config user.email "your@email.com"
|
||||
git remote add origin https://git.haiguang.xyz/username/repo.git
|
||||
```
|
||||
|
||||
### 问题 2:代理/网络连接失败
|
||||
|
||||
**错误**:
|
||||
```
|
||||
Failed to connect to git.haiguang.xyz port 443 via 127.0.0.1:7890
|
||||
```
|
||||
|
||||
**原因**:系统配置了 HTTP 代理
|
||||
|
||||
**解决方案**:
|
||||
|
||||
```bash
|
||||
# 清除代理设置
|
||||
git config --global --unset http.proxy
|
||||
git config --global --unset https.proxy
|
||||
|
||||
# 或为特定仓库设置
|
||||
git config --unset http.proxy
|
||||
git config --unset https.proxy
|
||||
```
|
||||
|
||||
### 问题 3:仓库路径错误
|
||||
|
||||
**错误**:
|
||||
```
|
||||
remote: Not Found
|
||||
fatal: repository 'https://git.haiguang.xyz/giteah/llm_wiki.git/' not found
|
||||
```
|
||||
|
||||
**原因**:用户名或仓库名不正确
|
||||
|
||||
**解决方案**:
|
||||
|
||||
1. 确认 Gitea 仓库已创建
|
||||
2. 检查 URL 格式:`https://git.haiguang.xyz/用户名/仓库名.git`
|
||||
3. 常见错误:
|
||||
- 用户名错误(`giteah` vs `giteahh`)
|
||||
- 仓库名拼写错误
|
||||
- 仓库未创建(需要先在 Gitea 上创建)
|
||||
|
||||
### 问题 4:分支名称不匹配
|
||||
|
||||
**错误**:
|
||||
```
|
||||
error: src refspec main does not match any
|
||||
```
|
||||
|
||||
**原因**:本地分支名与远程分支名不一致
|
||||
|
||||
**解决方案**:
|
||||
|
||||
```bash
|
||||
# 查看本地分支
|
||||
git branch
|
||||
|
||||
# 情况 1:推送 master 分支
|
||||
git push -u origin master
|
||||
|
||||
# 情况 2:重命名为 main
|
||||
git branch -m master main
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
### 问题 5:HTTP 413 错误
|
||||
|
||||
**错误**:
|
||||
```
|
||||
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
|
||||
```
|
||||
|
||||
**原因**:Gitea 服务器限制上传大小(默认较小)
|
||||
|
||||
**场景**:
|
||||
- 首次推送大量文件(如 685 个对象,约 140MB)
|
||||
- 单个文件过大
|
||||
|
||||
**解决方案**:
|
||||
|
||||
**客户端方案**(临时缓解):
|
||||
|
||||
```bash
|
||||
# 增加本地缓冲区大小
|
||||
git config http.postBuffer 524288000 # 500MB
|
||||
|
||||
# 重试推送
|
||||
git push -u origin master
|
||||
```
|
||||
|
||||
**服务端方案**(需要管理员权限):
|
||||
|
||||
1. 编辑 Gitea 配置文件(`app.ini`):
|
||||
|
||||
```ini
|
||||
[server]
|
||||
HTTP_PORT = 3000
|
||||
; 增加上传限制(单位:字节)
|
||||
MAX_FILE_SIZE = 1048576000 # 1GB
|
||||
|
||||
[repository]
|
||||
; 增加 Git 上传大小限制
|
||||
MAX_CREATION_SIZE = 1048576000
|
||||
```
|
||||
|
||||
2. 或修改 Nginx 配置:
|
||||
|
||||
```nginx
|
||||
client_max_body_size 500M;
|
||||
```
|
||||
|
||||
3. 重启 Gitea 服务
|
||||
|
||||
**长期方案**:
|
||||
- 大文件应使用 Git LFS(Large File Storage)
|
||||
- 分批推送(先推送少量文件测试)
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 安全性
|
||||
|
||||
| 实践 | 说明 |
|
||||
|------|------|
|
||||
| **使用 Access Token** | 避免密码泄露,权限可控 |
|
||||
| **最小权限原则** | Token 只授予必要的权限 |
|
||||
| **定期轮换 Token** | 每隔几个月更新一次 |
|
||||
| **不硬编码 Token** | 使用环境变量或 Git Credential Manager |
|
||||
|
||||
### 工作流
|
||||
|
||||
```bash
|
||||
# 日常开发
|
||||
git add .
|
||||
git commit -m "Add new notes"
|
||||
git push
|
||||
|
||||
# 拉取更新
|
||||
git pull
|
||||
|
||||
# 查看状态
|
||||
git status
|
||||
git log --oneline -10
|
||||
```
|
||||
|
||||
### 团队协作
|
||||
|
||||
```bash
|
||||
# 创建分支
|
||||
git checkout -b feature/new-topic
|
||||
|
||||
# 提交并推送
|
||||
git add .
|
||||
git commit -m "Add new topic"
|
||||
git push -u origin feature/new-topic
|
||||
|
||||
# 合并到主分支
|
||||
git checkout main
|
||||
git merge feature/new-topic
|
||||
git push
|
||||
```
|
||||
|
||||
## 与 Obsidian 集成
|
||||
|
||||
### .gitignore 优化
|
||||
|
||||
```gitignore
|
||||
# Obsidian 配置(个人化)
|
||||
.obsidian/workspace.json
|
||||
.obsidian/workspace-mobile.json
|
||||
.obsidian/graph.json
|
||||
|
||||
# 临时文件
|
||||
.obsidian/trash/
|
||||
.obsidian/*.swp
|
||||
|
||||
# 导出产物
|
||||
*.pdf
|
||||
*.html
|
||||
*.pptx
|
||||
*.png
|
||||
*.jpg
|
||||
```
|
||||
|
||||
### 自动化建议
|
||||
|
||||
- 使用 Obsidian Git 插件自动提交
|
||||
- 配置 Git Hook(如 pre-commit 检查)
|
||||
- 使用 CI/CD(如 GitHub Actions)自动备份到其他位置
|
||||
|
||||
## 来源
|
||||
|
||||
- [[Gitea 会话总结]] - 实际使用经验记录
|
||||
- Gitea 官方文档:<https://docs.gitea.com>
|
||||
Reference in New Issue
Block a user