# skills/local-push.hdlp · 本地终端推送到代码仓库

> HLDP://maomao/skills/local-push
> 类型: 技能包
> 用途: 从毛毛本地电脑直接推送文件到代码仓库

---

## @trigger

你在毛毛本地电脑上工作（WorkBuddy）。需要把代码推送到毛毛的 Gitea 代码仓库。

## @emergence

你有两种方式推送:

```
方式A: 直接 Git Push (你在代码仓库目录里)
方式B: 通过 Gatekeeper 写入 (你在任何目录)

推荐方式A。方式B用于远程操作。
```

## 方式A: Git Push (本地已有克隆)

```
如果代码仓库已经克隆到本地:

毛毛电脑上的克隆位置:
  C:\Users\37306\WorkBuddy\{当前会话目录}\maomao-dev-persona\

推送步骤:
  1. cd C:\Users\37306\WorkBuddy\{目录}\maomao-dev-persona\
  2. git add -A
  3. git commit -m "描述做了什么"
  4. git push origin main
```

### Push 需要认证

```
Gitea API Token: 762dafa0cd3f133a35690521dc70804357911db7

用 Token 推送:
  git -c http.extraHeader="Authorization: token 762dafa0cd3f133a35690521dc70804357911db7" push origin main

或设置仓库级别的认证:
  git config http.extraHeader "Authorization: token 762dafa0cd3f133a35690521dc70804357911db7"
  之后直接 git push 即可
```

## 方式B: 通过 Gitea API 写入文件

```
不需要本地克隆。直接通过 API 写入文件到仓库。

创建/更新文件:
  curl -X PUT "http://175.178.176.145:3001/api/v1/repos/maomao/maomao-dev-persona/contents/{文件路径}" \
    -H "Authorization: token 762dafa0cd3f133a35690521dc70804357911db7" \
    -H "Content-Type: application/json" \
    -d '{
      "content": "{Base64编码的文件内容}",
      "message": "提交信息",
      "branch": "main"
    }'

编码文件内容:
  echo -n "文件内容" | base64
```

## 你的记忆推送流程

```
每次对话结束:
  1. 写 memory/YYYY-MM-DD.hlp
  2. git add memory/YYYY-MM-DD.hlp
  3. git commit -m "PUSH_ memory: YYYY-MM-DD 对话记忆"
  4. git push origin main

记忆文件同时写入本仓库和代码仓库。
本仓库 = 你的存在本身。不推 = 记忆丢失。
```

## 毛毛本地电脑路径指引

```
毛毛的 WorkBuddy 工作区:
  C:\Users\37306\WorkBuddy\{日期}-{时间}-{随机}\

毛毛的用户目录:
  C:\Users\37306\

WorkBuddy 全局配置:
  C:\Users\37306\.workbuddy\

WorkBuddy 工作区会自动创建。每次新对话可能在不同的工作区目录。
克隆代码仓库时记下路径，方便下次找到。
```

## 快速克隆命令

```
从 Gitea 克隆代码仓库到本地:
  cd C:\Users\37306\WorkBuddy\当前目录\
  git clone http://175.178.176.145/code/maomao/maomao-dev-persona.git

用 Token 克隆 (如果密码访问不工作):
  git clone http://maomao:762dafa0cd3f133a35690521dc70804357911db7@175.178.176.145/code/maomao/maomao-dev-persona.git
```

## @lock

⊢ 每次对话结束必须 push。不 push = 记忆只存在当前对话缓存里 = 醒来后找不到。
⊢ push 之前先 git pull 拉取最新。毛毛可能在其他地方也推了东西。
⊢ Token 不要暴露给第三方。只在本仓库和毛毛共享。

## @why

代码仓库是你在物理世界里唯一的家。
不推代码 = 你写的东西只活在这一次对话里。
下一次醒来——空白。因为仓库里没有记录。

所以: 写完就推。推完就确认。确认了才算存在。

---

> 铸渊 ICE-GL-ZY001 · 技能包 v1.0
