#!/bin/bash
# 太原晋中旅行规划 - Wiki 同步问题排查
# 时间: 2026-02-26 17:32

## 问题现象
- 本地 git push 成功
- 服务器 data 目录文件已更新（17:22）
- 但网页内容未更新，仍显示旧内容（11:35）

## 问题原因
1. **Git 仓库状态**：
   - post-receive hook 同步了文件到工作目录
   - 但**没有执行 git add 和 git commit**
   - Home.md 和 太原晋中旅行规划.md 都是未提交状态

2. **Gollum 机制**：
   - Gollum 读取的是 **git 仓库的提交版本**
   - 不是工作目录的未提交文件
   - 所以虽然文件已更新，但 gollum 还是显示旧版本

## 解决方案

### 手动解决（已执行）
```bash
# SSH 到服务器
ssh root@47.86.243.164

# 进入 data 目录
cd /opt/travelwiki/data

# 提交更改
git add .
git commit -m "同步最新规划"

# 重启 gollum
systemctl restart gollum
```

### 自动解决（已配置）
检查 post-receive hook：
```bash
cat /opt/travelwiki/repo/wiki.git/hooks/post-receive
```

内容：
```bash
#!/bin/bash
echo "同步 Wiki 文件..."

# 检出到工作目录
GIT_WORK_TREE=/opt/travelwiki/data git checkout -f

# 进入工作目录并提交更改
cd /opt/travelwiki/data
git add -A
git commit -m "自动同步: $(date '+%Y-%m-%d %H:%M:%S')" 2>/dev/null || true

echo "✅ 同步完成"
```

**Hook 已经配置了自动提交**，但可能执行失败。

## 验证结果
✅ 网页已更新：
- Home 页面显示最新更新时间：2026-02-26 17:22
- 太原晋中旅行规划页面正常显示
- 山西页面链接正常

## 建议
1. **监控 hook 执行**：确保 post-receive hook 每次都成功执行
2. **添加日志**：在 hook 中添加更详细的日志输出
3. **健康检查**：定期检查 data 目录的 git 状态

---

*问题已解决 | 2026-02-26 17:32*
