记忆:本仓库推送要认证,非交互环境会卡在凭据弹窗(fetch 匿名)

This commit is contained in:
tamakyi
2026-10-12 18:52:52 +08:00
parent bf7121f11b
commit 9cf3d89c3c
+20
View File
@@ -114,3 +114,23 @@ JS 动态建的输入框模板扫不到,另用 `TestTopicAreaRadiusInputAllows
**顺带**:把 `admin/topics.html` 的工作区行尾归一到 LF。`git add` 之后**零改动** ⇒ **顺带**:把 `admin/topics.html` 的工作区行尾归一到 LF。`git add` 之后**零改动** ⇒
再次确认 blob 本来就是 LF,CRLF 只是检出产物(那条 CRLF 警告是 stat 缓存假象)。 再次确认 blob 本来就是 LF,CRLF 只是检出产物(那条 CRLF 警告是 stat 缓存假象)。
## 推送这个仓库要认证(非交互环境会卡住)
用户让「提交一次」时本地其实已经全部提交完了(每批做完就提交),工作区干净;
唯一没做的是推送。结果 `git push origin master` **卡了 7 分钟没有任何输出**。
诊断(下次直接照这个查):
- 远端 `git.shiroko.one` 的 **读是匿名的**(`upload-pack` HTTP 200)、
**写要认证**(`receive-pack` HTTP 401)⇒ 所以 `git fetch` 一切正常、唯独 push 卡住。
- `tasklist` 里能看到 `git-credential-helper-selector`(**有可见窗口**,标题
`CredentialHelperSelector`),`git config credential.helper` = `helper-selector` +
PortableGit 自带的 `git-credential-manager.exe`。本机从未推过这个仓库 ⇒ 触发选择器弹窗等人。
- 判据:`netstat` 里到远端的连接**根本没建立**(ESTABLISHED 全是本机 postgres),
说明停在认证之前,不是网络慢。
- ⚠️ `git push | tail -N` 会把进度缓冲住,看起来「一片空白」——排查时别用管道。
处置:结束掉 push 那几个进程(不动本地提交,也不会留 `.git/*.lock`),
**由用户在自己的终端里推**(交互式提示看得见)。
**结论:以后不要在这个环境里代跑 `git push`,直接把命令交给用户。**