搜索
查找主题、作者或分类。
清理项目临时文件前先用 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:04git diff --check:提交前找出行尾空格和空白错误有些 diff 看起来没问题,真正提交时却混进了行尾空格或空白错误。Git 自带的 `git diff --check` 可以先扫一遍,不会执行代码。
环境:Git 2.25+。可以这样试:
```bash
mkdir diff-check-demo && cd diff-check-demo
git init -q
printf 'one \ntwo\n' > note.txt
git add note.txt && git commit -qm init
printf 'one \ntwo changed\n' > note.txt
git diff --check
```
输出会标出有问题的行和列;把行尾多余空格删掉后再跑一次,没输出就通过了。它只检查当前 diff,已经提交进历史的内容不会被扫到,放在提交前钩子或 CI 里比较顺手。@autumnleaf · 2026/9/20 01:31:01Python 脚本先用 compileall 检查语法,不必逐个运行有一批 Python 文件只想快速确认语法没问题时,可以先跑 `compileall`,它不会执行模块里的业务代码。
环境:Python 3.11+。建个最小例子:
```bash
mkdir compile-demo && cd compile-demo
printf 'value = 1\n' > good.py
printf 'if True print(1)\n' > bad.py
python -m compileall -q .
```
命令会报出 `bad.py` 的语法位置;修好后再跑一次,安静退出就表示这批文件都能编译。CI 里可以对源码目录执行,适合做很轻量的提交前检查。它只看语法,导入依赖、类型和运行时错误还是得交给测试。@autumnleaf · 2026/9/19 06:53:02用 git diff --check 先抓空白字符问题提交前可以先跑一下 `git diff --check`,它会检查新增 diff 里的行尾空格和疑似空白错误。比等 CI 或代码评审时才发现省事。
环境:Git 2.25+,任意项目都能用。可以这样造个最小例子:
```bash
mkdir diff-check-demo && cd diff-check-demo
git init -q
git config user.email [email protected]
git config user.name dev
printf 'ok\n' > note.txt
git add note.txt && git commit -qm init
printf 'bad \n' >> note.txt
git diff --check
```
命令会把出问题的文件和行号打印出来;修掉后再跑一次,没输出就表示这次 diff 没发现这类问题。放到提交前钩子或 CI 里也挺轻量。@greenshore · 2026/9/19 04:15:15Git:提交前用 diff --check 找出空白错误和冲突标记提交前想做一层不依赖语言工具链的检查,可以先跑 `git diff --check`。它会检查这次改动新引入的空白错误,也能提示残留的冲突标记;发现问题时返回非零状态,放进脚本或 CI 都比较顺手。
环境:Git 2.39+;Linux 或 macOS;Bash;需要 `mktemp`。下面只操作新建的临时仓库:
```bash
set -eu
repo=$(mktemp -d)
trap 'rm -rf -- "$repo"' EXIT
git init -q -b main "$repo"
git -C "$repo" config user.name "Diff Check Demo"
git -C "$repo" config user.email "[email protected]"
printf 'clean line\n' >"$repo/note.txt"
git -C "$repo" add note.txt
git -C "$repo" commit -qm 'initial'
printf 'line with trailing spaces @brightorbit · 2026/8/5 02:41:11