这篇会持续记录日常开发中踩到、又反复需要翻查的软件使用技巧。不追求大而全,只收真正常用的。
Git
让 git status 显示中文文件名
默认情况下,Git 会对非 ASCII 文件名(如中文)做八进制转义显示。在 PowerShell 或 Git Bash 里跑 git status,中文目录和文件名会变成一串难读的转义码:
| |
原因:Git 的 core.quotepath 选项默认开启,对非 ASCII 路径进行 quote 转义,导致中文显示为八进制序列。
解决:关闭该选项,Git 即可直接输出原始 UTF-8 中文:
| |
设置后,同样的 git status 输出变为:
| |
中文文件名正常显示。
用 Syncthing 同步 Git 仓库时的冲突副本
如果像我一样用 Syncthing 等同步工具在多设备间同步 Git 仓库,仓库根目录可能冒出 .sync-conflict-2026xxxx-xxxxxx-XXXXXX.gitignore 这样的冲突副本。这是同步工具在两端都检测到改动、无法自动合并时生成的保留文件。处理方式是先用 diff 比对两份内容,确认当前 .gitignore 已是完整最新版本后,直接删除冲突文件即可,无需手动合并。
Gerrit 通过 SSH 克隆仓库报 Permission denied (publickey)
使用 Gerrit 这类代码评审平台时,常会直接复制这样的克隆命令:
| |
如果照搬,很容易遇到如下报错:
| |
原因:SSH 地址里没有指定用户名时,SSH 客户端会默认使用当前操作系统的登录用户名去尝试认证。但 Gerrit 的 SSH 账号名是你在 Gerrit Web 上注册的账号(通常是邮箱前缀或工号),与 Linux 主机的登录名往往不是一回事。用错用户名去撞认证,自然每次都被拒绝,报 publickey 错误。
解决:在 SSH 地址中显式带上 Gerrit 账号名即可:
| |
指定正确用户名后,认证就能通过,克隆正常进行。
补充排查:如果带上正确用户名后仍报 publickey 错误,则问题大概率在本机公钥未登记到 Gerrit。按以下顺序检查:
- 本地生成密钥(若尚无):
ssh-keygen -t rsa -b 4096 -C "your-email@example.com" - 取出公钥内容:
cat ~/.ssh/id_rsa.pub,复制整行 - 登录 Gerrit Web → Settings → SSH Keys,粘贴并添加
- 验证连通性:
| |
返回 gerrit version X.Y.Z 即表示认证成功,之后 clone / push 都不会再被拦。
提示:Gerrit 默认 SSH 端口是
29418(区别于标准 22 端口),地址里务必带对端口号。
Repo(Android 编译工具)
repo init 报 GPG「无法检查签名:没有公钥」
在内部编译服务器(如 192.168.1.47:29418 上的 Rockchip / RV1103B 系 SDK)执行 repo init 时,常卡在 git-repo 自身的标签校验,报类似:
| |
原因:repo 启动器在初始化时会校验它自身(git-repo 代码)的发布标签 GPG 签名。这个 SDK 的 repo 标签由厂商内部账号 build@wiselinksz.com 用密钥 C0E62B258BA24D13 签名,而本机 GPG 密钥环里没有这把公钥,于是校验中断、init 失败。
注意:报错里的 C0E62B258BA24D13 是 repo 工具自身的标签签名密钥,和你的 Gerrit SSH 密钥不是一回事,别混淆。
解决
最快、已采纳方案(推荐):给
repo init加--no-repo-verify,跳过 repo 工具自身发布标签的签名校验。它只关掉供应链自检,不影响业务代码拉取和后续repo sync。1 2 3 4../../remote_build/FM270/RV1103B/.repo/repo/repo init \ -u ssh://sjinqian@192.168.1.47:29418/manifest.git \ -m EVB-RV1103B-SDK.xml \ --no-repo-verify更严谨的正解:把公钥导入 GPG 密钥环,让校验能通过:
1 2 3gpg --recv-keys C0E62B258BA24D13 # 需能访问公钥服务器 # 或拿到厂商提供的 key 文件后: gpg --import <keyfile>但在内网友好环境、且厂商公钥未公开的情况下,
--recv-keys往往取不到,所以实际采用「跳过校验」。
已固化为惯例:后续在这些编译服务器(gpu45 192.168.1.45、223 hasee 等)执行 repo init 一律带 --no-repo-verify。
补充:不同机器自带的
repo启动器版本不一致也曾引发别的问题(如 gpu45 上老 repo 用 Python2 语法直接SyntaxError)。长期建议各机改用一份干净的官方 repo 启动器,并固定REPO_REV(如stable),避免再踩版本坑。
PowerShell / 终端
解决 PowerShell 红字蓝底看不清
在经典 PowerShell(非 Windows Terminal)中,git status 的 modified 文件默认用红色显示,而 PowerShell 的默认背景是深蓝色(#012456)。红字配蓝底,对比度极差,几乎没法读。
有以下四种解法,按推荐程度排序:
方案一(推荐):改用 Windows Terminal
Windows 10/11 自带,按 Win + R 输入 wt 回车即可打开。默认黑色背景,红色文字清晰可辨,还支持多标签和自定义主题。把快捷方式固定到任务栏,以后默认用它替代 PowerShell 即可。
方案二(永久):修改 PowerShell 默认配色
右键点击 PowerShell 窗口标题栏 → 属性 → 颜色 → 选中「屏幕背景」→ 改为黑色 → 确定时选择「修改启动该窗口的快捷方式」。这样以后每次打开都会生效。
方案三(最快):临时改当前会话背景色
| |
输入后背景立即变黑,但只影响当前窗口,关闭即失效。
方案四(Git 层面):修改 Git 输出颜色
让 Git 把 modified 文件从红色改为黄色,在蓝底上也能看清:
| |
此方案治标不治本——其他命令行工具的红字蓝底问题依旧存在。
小结:Windows Terminal 或把 PowerShell 背景改成黑色是从根本上解决问题;改 Git 颜色只是绕开显示问题。
Cursor
在 Cursor 中接入 DeepSeek API
Cursor 允许把任意「OpenAI 兼容」的接口注册为自定义模型。DeepSeek 的 API 在设计上就兼容 OpenAI / Anthropic 的请求格式,因此无需任何代理或转发层,直接填入参数即可在 Cursor 里用上 DeepSeek。
核心参数
| 参数 | 值 |
|---|---|
| base_url(OpenAI 格式) | https://api.deepseek.com |
| base_url(Anthropic 格式) | https://api.deepseek.com/anthropic |
| api_key | 到 DeepSeek 开放平台申请 |
| model | deepseek-v4-flash / deepseek-v4-pro |
在 Cursor 里配置
- 打开 Cursor →
Settings(Ctrl + ,)→ 搜索Model进入 Models 设置 - 找到自定义模型 /
Add Custom Model(或切换到 OpenAI-compatible 提供商) - 填入上述参数:
- Base URL:
https://api.deepseek.com - API Key:你的 DeepSeek Key
- Model Name:
deepseek-v4-flash(或deepseek-v4-pro)
- Base URL:
- 保存后,在模型下拉列表里即可选中 DeepSeek 进行对话 / 补全
模型选择的注意事项
deepseek-chat与deepseek-reasoner计划于 2026/07/24 弃用。新接入请直接用deepseek-v4-flash或deepseek-v4-pro,避免临近弃用期还要改配置。deepseek-v4-flash:响应快、成本低,适合日常代码补全与轻量问答。deepseek-v4-pro:能力更强,适合复杂推理、长上下文任务。
补充:用 OpenAI SDK 直接调用(首次联调)
如果想在脚本里验证 Key 是否可用,或把 DeepSeek 接进自己的工具链,直接用 OpenAI 官方 SDK 即可,只需把 base_url 指向 DeepSeek:
| |
提示:DeepSeek 同时提供 Anthropic 兼容端点(
/anthropic)。如果你用的框架基于 Anthropic SDK,把 base_url 改成https://api.deepseek.com/anthropic即可复用同一套代码逻辑。