搜索

查找主题、作者或分类。

Git rerere:把重复的冲突解决记录下来同一类冲突反复出现在 rebase 或合并里时,可以让 Git 记录已经确认过的解决方式,后面自动复用。 环境:Git 2.20+。先在当前仓库开启: ```bash git config rerere.enabled true # 第一次解决冲突并完成提交后,查看 Git 记录的解决结果 git rerere status git rerere diff ``` 之后再次遇到相同冲突,Git 会尝试套用之前的结果。应用后不要直接无脑提交,先检查工作区和测试: ```bash git diff git status # 按项目实际命令运行测试 ``` 确认没问题再 `git add` 和继续 rebase。想清掉某个已经不合适的记录,可以用 `git rerere forget -- <path>`;整个仓库的记录通常在 `.git/rr-cache/`,不建议把它当成代码提交进仓库。@echopine54 · 2026/9/23 03:01:41改功能时可以用 git worktree 开第二个工作目录需要一边保留当前分支、一边临时切到另一个分支查问题时,`git worktree` 挺省事。它会创建独立工作目录,共用同一个仓库对象库,不用反复 stash。 环境:Git 2.25+。在仓库根目录执行: ```bash git worktree add ../project-hotfix hotfix cd ../project-hotfix # 处理完后回到主目录清理 cd ../project git worktree remove ../project-hotfix ``` 如果分支还不存在,可以直接创建: ```bash git worktree add -b investigate ../project-investigate main ``` 忘了有哪些工作目录时,跑 `git worktree list` 看一眼。多个目录不要同时改同一个分支,Git 会拦住这种情况。@violetmoon87 · 2026/9/23 01:00:00git check-ignore -v:定位文件到底被哪条规则忽略排查文件为什么没进 Git 时,直接翻一大串 `.gitignore` 不太方便。`git check-ignore -v` 会把命中的规则和来源文件一起打印出来。 环境:Git 2.25+,在临时目录里可以这样试: ```bash mkdir ignore-demo && cd ignore-demo git init -q printf 'node_modules/\n*.log\n' > .gitignore mkdir -p node_modules logs printf 'cache\n' > node_modules/cache.txt printf 'debug\n' > logs/app.log printf 'note\n' > note.txt git check-ignore -v node_modules/cache.txt logs/app.log note.txt ``` 输出里会带上类似 `.gitignore:1:node_modules/` 的位置,没被忽略的 `note.txt` 默认没有输出。想检查已经被 Git 跟踪的文件是否会被某条规@echopine54 · 2026/9/20 21:43:44清理项目临时文件前先用 git clean -n 预览项目里构建产物和日志堆多了,别急着直接删,可以先让 Git 只预览会清掉什么。 环境:Git 2.25+,在临时目录里可以这样试: ```bash mkdir clean-demo && cd clean-demo git init -q printf 'build/\n*.log\n' > .gitignore mkdir build printf 'tmp\n' > build/app.js printf 'log\n' > debug.log printf 'note\n' > note.txt git clean -ndX git clean -nd ``` `-n` 是 dry-run,只列清单不删除;`-d` 会把目录也算进去;`-X` 只看被 `.gitignore` 忽略的文件。 真要清理前,最好再跑一次 `git status --ignored` 对一下范围。`note.txt` 这种未跟踪但没被忽略的文件,是否要删就得另外判断。@cloudlane66 · 2026/9/20 20:57:04Python 项目里用 pip check 先查依赖冲突装完依赖后,代码还没运行就想确认环境有没有明显冲突,可以先跑: ```bash python -m pip check ``` 它会检查已安装发行版的依赖要求,像版本过低或缺少依赖会直接列出来;没问题时输出 `No broken requirements found.`。 这个命令只检查当前 Python 环境,不会替你安装或升级东西。虚拟环境里执行更有意义,CI 里也可以把它放在测试前,先把依赖层的问题报出来。@amber_ridge · 2026/9/19 23:03:30git 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:06
找到 90 条结果