From fdf1de774ba9efe9b88be1b1632b2c6af1c11878 Mon Sep 17 00:00:00 2001 From: dqb-dev Date: Fri, 2 Oct 2026 01:54:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=80=E8=83=BD:git=20=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E4=B8=8E=E6=95=85=E9=9A=9C=E6=8E=92=E6=9F=A5?= =?UTF-8?q?=E6=89=8B=E5=86=8C=E5=86=99=E5=85=A5(=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5/rebase=E6=95=B4=E5=90=88/=E5=87=AD=E6=8D=AE?= =?UTF-8?q?=E6=B8=85=E7=90=86/=E6=96=87=E4=BB=B6=E5=8D=A0=E7=94=A8/gitigno?= =?UTF-8?q?re=E9=80=90=E5=B1=82=E6=94=BE=E8=A1=8C/=E4=B8=AD=E6=96=87?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E8=BD=AC=E4=B9=89=E7=AD=897=E7=B1=BB?= =?UTF-8?q?=E5=9C=BA=E6=99=AF,=E5=90=ABRelease=E9=99=84=E4=BB=B6=E4=B8=8E?= =?UTF-8?q?=E6=BA=90=E7=A0=81=E6=8E=A8=E9=80=81=E7=9A=84=E5=8C=BA=E5=88=86?= =?UTF-8?q?=E8=AF=B4=E6=98=8E)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/sd-enhanced-components/SKILL.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.agents/skills/sd-enhanced-components/SKILL.md b/.agents/skills/sd-enhanced-components/SKILL.md index e8052c9..f532622 100644 --- a/.agents/skills/sd-enhanced-components/SKILL.md +++ b/.agents/skills/sd-enhanced-components/SKILL.md @@ -65,6 +65,15 @@ description: SharpDevelop 5.x WinForms 设计器**全部工具箱**(5 分类 8 - `release\成套报价软件\setup.iss` 的 `AppVersion` 与 `OutputBaseFilename=成套报价软件_Setup_版本` 由脚本同步; - Gitea Release 的 tag 与版本号一致(如 `v1.0.4`); - 发版链固定为:递增版本号 → 编译 → make_package → ISCC → 更新包 → git 提交推送 → Release。跳过递增 = 两个不同功能的安装包同版本号,用户分不清、回滚排障全乱。 +8. **git 推送流程与故障排查(2026-10-01 实战沉淀,用户强制写入)**。日常流程:改动 → `git add -A` → `git commit -m "中文消息"` → `git push`(remote 已内嵌用户令牌自动认证,无需弹窗)。Release 附件(安装包/更新包)走 Gitea 附件存储**只在发版时上传一次**,`git push` 只推源码文本,两者互不相干——不要混淆"推送源码"与"重传安装包"。常见失败与处置: + - **`Failed to authenticate user` / 认证失败**:令牌失效或被撤销。让用户去 Gitea 网页 头像→设置→应用 生成新令牌(勾 repository 读写),然后 `git remote set-url origin http://0999we:<新令牌>@192.168.9.43:3000/0999we/ctbjrj.git`。同令牌也用于 Gitea REST API(`Authorization: token <令牌>` 头,建 Release/传附件用)。 + - **`! [rejected] (fetch first)`**:远程有本地没有的提交(通常是用户自己在 Gitea 网页上传过文件)。处置:`git fetch` → `git log HEAD..origin/master --oneline` 看远程新增 → `git pull --rebase` 整合 → `git push`。**绝不 force push**(会抹掉用户网页上传的东西)。 + - **GCM 弹窗/OAuth 凭据残留**:本项目不靠 GCM(remote 内嵌令牌)。若 cmdkey 里出现 `git:http://refresh_token.192.168.9.43:3000` 之类失效条目,`cmdkey /list | findstr 192.168` 找到后 `cmdkey /delete <条目名>` 清掉。 + - **`另一个程序正在使用此文件`**:git add/checkout 撞上运行中的 node/AI 引擎/主程序占用。先 `Get-CimInstance Win32_Process` 查占用进程(看 CommandLine 路径),Stop-Process 结束开发目录侧的进程再操作(安装目录 C:\成套报价软件 下的不动)。 + - **`.gitignore` 否定规则陷阱**:父目录被排除时深层 `!` 否定无效(`!release/成套报价软件/setup.iss` 配 `release/*` 不生效)。必须逐层放行:`!release/` → `release/*` → `!release/成套报价软件` → `release/成套报价软件/*` → `!release/成套报价软件/setup.iss`。改完用 `git status --short` 验证目标文件真的 staged(`A` 状态)。 + - **中文路径显示八进制转义**(`\346\210\220...`):git 默认 quotepath,排查时加 `-c core.quotepath=false`,如 `git -c core.quotepath=false ls-tree -r --name-only HEAD`。 + - **LF→CRLF warning**:无害,忽略。 + - **push 后验证**:`git ls-remote origin` 的 HEAD 与本地 `git log -1` 哈希一致才算成功。 ## 一、项目前提(缺一不可)