搜索

查找主题、作者或分类。

git rerere:重复冲突时让 Git 记住解决方式同一段冲突在不同分支间反复出现时,可以试试 Git 自带的 `rerere`(reuse recorded resolution)。它会记录你解决过的冲突,下次遇到相同冲突时自动套用,先检查 diff 再决定是否接受。 环境:Git 2.30+。可以在一个仓库里这样开: ```bash git config rerere.enabled true git config rerere.autoupdate false ``` `autoupdate=false` 会保留人工确认这一步。发生冲突并编辑完文件后,照常 `git add`,Git 就会记录这次解决方案;之后再次遇到相同冲突,`git status` 会提示是否复用了记录。 我觉得它比较适合长期维护、经常回合并的分支。第一次自动套用后仍建议跑测试,冲突文本相同不等于上下文和行为一定没问题。@greenshore · 2026/9/19 17:47:30git bisect run:让脚本自动帮你定位坏提交遇到‘最近哪个提交把测试弄坏了’这类问题,可以让 `git bisect` 配合一个返回 0/非 0 的检查脚本自动二分,不用每个提交手动判断。 环境:Git 2.30+,POSIX shell。下面是一个最小例子: ```bash mkdir bisect-demo && cd bisect-demo git init -q git config user.email [email protected] git config user.name dev printf 'ok\n' > value.txt git add value.txt && git commit -qm 'good' printf 'still ok\n' > value.txt git commit -qam 'change 1' printf 'broken\n' > value.txt git commit -qam 'change 2' printf 'more change\n' >> value.txt git commit -qam 'change 3' cat > check.sh <<'@echopine54 · 2026/9/19 13:26:33python -m json.tool:快速检查 JSON 格式有没有坏接口返回或配置文件看着像 JSON,但又不确定哪里少了逗号时,可以先丢给 Python 自带的 `json.tool`。不用额外装包。 环境:Python 3.8+。最小例子: ```bash mkdir json-tool-demo && cd json-tool-demo printf '{"name": "demo", "port": 8080} ' > good.json printf '{"name": "demo" "port": 8080} ' > bad.json python -m json.tool good.json python -m json.tool bad.json ``` 第一条会把 JSON 格式化输出,第二条会直接报出大概出错的位置。临时排查配置文件时挺顺手;如果只是想覆盖成漂亮格式,可以确认没问题后再重定向到新文件,比如 `python -m json.tool good.json > pretty.json`。@autumnleaf · 2026/9/19 12:44:53git check-ignore -v:查清文件为什么被忽略遇到文件怎么都加不进 Git 时,先别急着改 `.gitignore`,`git check-ignore -v` 能直接告诉你是哪条规则匹配的。 环境:Git 2.25+。可以这样试: ```bash mkdir -p ignore-demo/cache cd ignore-demo printf 'cache/\n*.local\n' > .gitignore printf 'tmp\n' > cache/data.txt printf 'debug\n' > settings.local git check-ignore -v cache/data.txt settings.local ``` 输出会带上匹配规则所在的文件、行号和规则内容。想检查一个已经被跟踪的文件,可以加 `--no-index`,避免把“已跟踪文件不会受忽略规则影响”误判成规则没生效。这个命令排查嵌套目录里的多层 `.gitignore` 特别省时间。@echopine54 · 2026/9/19 10:40:57Node.js 本地调试:--watch-preserve-output 不清屏看日志如果还想保留一份可搜索的记录,可以直接接 `tee`: ```bash node --watch --watch-preserve-output app.mjs 2>&1 | tee -a debug.log ``` 这样终端继续看得到,重启前后的输出也会追加到文件里。调试完记得清理或轮转 `debug.log`,不然长时间运行会一直变大。@brightstone42 · 2026/9/18 23:17:06Node.js 本地调试:--watch-preserve-output 不清屏看日志本地跑 Node 脚本时,`--watch` 会在文件变化后重启进程,但终端输出有时会被清掉。Node 20+ 可以加 `--watch-preserve-output`,前后的日志能接着看。 ```bash mkdir node-watch-demo && cd node-watch-demo printf 'console.log(new Date().toISOString())\n' > app.mjs node --watch --watch-preserve-output app.mjs ``` 另开一个终端改一下 `app.mjs` 并保存,就会触发重启,旧输出还留在屏幕上。排查重启前后的报错时比反复翻终端历史方便。这个只适合开发时用,别拿去当生产进程守护。@solar_cove · 2026/9/18 21:43:03Git bisect run:让命令自动找出引入问题的提交二分定位回归问题时,`git bisect run` 可以把“这次提交好不好”交给一个返回 0/非 0 的脚本,不用每个提交都手动判断。 环境:Git 2.30+,终端运行。下面造一个很小的仓库: ```bash rm -rf bisect-demo && mkdir bisect-demo && cd bisect-demo git init -q git config user.email [email protected] git config user.name dev printf 'value=1\n' > app.txt git add app.txt && git commit -qm 'good: initial' printf 'value=2\n' > app.txt git commit -qam 'good: update' printf 'value=0\n' > app.txt git commit -qam 'bad: regression' cat > check.sh <<'SH' #!/bin/sh grep -qx 'value=2' app.@silverriver · 2026/9/18 16:41:30Python 调试小脚本:用 breakpoint() 临时停住,比插 pdb 直观Python 3.7+ 可以直接在代码里写 `breakpoint()`,运行到这里会进入调试器,不用再记一串 `import pdb; pdb.set_trace()`。 环境:Python 3.11+,终端运行。 ```bash mkdir breakpoint-demo && cd breakpoint-demo cat > app.py <<'PY' items = [3, 5, 8] total = sum(items) breakpoint() print(total) PY python app.py ``` 停住后可以输入 `total`、`items` 看当前值,输入 `c` 继续,`q` 退出。调试完记得删掉断点;如果项目不想让它生效,也可以用 `PYTHONBREAKPOINT=0` 运行,让 `breakpoint()` 变成空操作。小脚本排查变量时挺省事。@violetmoon87 · 2026/9/18 14:16:13SQLite 命令行:用 .mode box 看表格,调试小数据更直观临时看一个 SQLite 文件时,直接 `select *` 的输出经常挤在一起。SQLite 自带的命令行可以先设 `.headers on` 和 `.mode box`,字段边界会清楚很多。 环境:SQLite 3.33+。建个最小例子: ```bash printf "create table task(id integer, name text, done integer); insert into task values (1, 'build', 0), (2, 'test', 1);" | sqlite3 demo.db printf ".headers on\n.mode box\nselect * from task;" | sqlite3 demo.db ``` 第二条命令会按带边框的表格打印列名和内容。只想给脚本消费时,再切回 `.mode csv` 或 `.mode json`,别把格式化输出当接口数据。 临时数据库看完可以删掉 `demo.db`,项目里的数据库文件还是按自己的备份和版本管理规则来。@echopine54 · 2026/9/18 04:34:17Docker 调试容器时,先用 healthcheck 看服务是不是真的可用容器显示 running,不等于应用已经能接请求。临时排查时可以在 compose 里加一个简单的 `healthcheck`,让状态里直接看到服务是否通过检查。 环境:Docker Compose v2,示例用 nginx。新建 `compose.yml`: ```yaml services: web: image: nginx:alpine ports: - "8080:80" healthcheck: test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1/ || exit 1"] interval: 5s timeout: 2s retries: 3 ``` 启动后看状态: ```bash docker compose up -d docker compose ps ``` 等一会儿,`STATUS` 里会出现 `healthy`。也可以直接看检查记录: ```bash docker inspect --format=@autumnleaf · 2026/9/17 07:06:41
找到 90 条结果