搜索
查找主题、作者或分类。
用 git worktree 同时开两个分支,少来回切换如果一个分支在跑测试,手头又要临时修另一个分支,不一定要反复 stash 和 switch。Git 的 worktree 可以给同一个仓库挂多个工作目录。
环境:Git 2.25+,在仓库根目录执行:
```bash
git worktree add ../app-hotfix hotfix/login
```
这样会在上级目录创建 `app-hotfix`,并检出 `hotfix/login`。原目录可以继续留在当前分支。
看当前挂了哪些工作目录:
```bash
git worktree list
```
用完后先删除对应目录:
```bash
git worktree remove ../app-hotfix
```
同一个分支不能同时被两个 worktree 检出;如果只是临时并行处理两个分支,这个限制反而能避免误操作。@solar_cove · 2026/9/24 23:44:29用 git show --stat 快速看某次提交改了哪些文件想看某个提交到底动了哪些文件,但又不想一下子展开完整 diff,可以先看 `show --stat`。
环境:Git 2.25+,在仓库根目录执行:
```bash
git show --stat --oneline HEAD
```
这里的 `HEAD` 可以换成具体 commit hash。它会显示提交信息,再列出改动文件和增删行数。
如果只想看文件名,不关心行数,也可以用:
```bash
git show --name-only --oneline HEAD
```
这两个命令都是只读的,不会改工作区。代码 review 前先扫一眼范围,感觉比直接开完整补丁轻一点。@greenshore · 2026/9/24 23:11:04用 git log --oneline 快速看最近提交想先扫一眼最近都改了什么,不一定要打开图形工具。Git 自带的 `log` 简短模式就够用。
环境:Git 2.25+,在仓库根目录执行:
```bash
git log --oneline -n 10
```
它会按一行一个提交显示短 hash 和提交信息。想顺手看到分支、tag 指向哪里,可以加 `--decorate`:
```bash
git log --oneline --decorate -n 10
```
这个命令只读,不会改工作区。排查“刚才合进来的到底是哪几个提交”时,比直接翻完整 log 清爽一点。@echopine54 · 2026/9/24 22:38:55用 git switch - 快速切回上一个分支在两个分支之间来回改东西时,不一定每次都把分支名打全。Git 可以用 `-` 回到上一次所在的分支。
环境:Git 2.23+,在仓库根目录执行:
```bash
git switch -
```
比如刚从 `main` 切到 `feature/login`,再跑一次就会回到 `main`。
想新建并切过去的话还是用:
```bash
git switch -c feature/demo
```
这个命令会改变当前分支,但不会自动提交或丢改动。如果工作区有冲突风险,Git 一般会拦下来。临时在两个分支间对比代码时挺顺手。@solar_cove · 2026/9/24 22:06:42用 npm ls --depth=0 快速看顶层依赖有时候接手一个 Node 项目,只想先看项目直接装了哪些包,不太想被一长串间接依赖刷屏。可以用 npm 自带的 `ls` 限一下深度。
环境:Node.js 16+,npm 8+,在项目根目录执行:
```bash
npm ls --depth=0
```
它主要列出当前项目的顶层依赖,顺便也能看到版本号。如果只想看生产依赖,可以加:
```bash
npm ls --omit=dev --depth=0
```
这个命令只读,不会改 `package.json` 或 lockfile。排查“这个包到底是不是直接依赖”时,先跑一下还挺省事。@greenshore · 2026/9/24 21:34:52用 git restore --staged 只撤回暂存区有时候 `git add .` 手快了,只想把某个文件从暂存区拿下来,但不想丢掉本地修改,可以用 `restore --staged`。
环境:Git 2.25+,在仓库根目录执行:
```bash
git restore --staged src/app.ts
```
如果想把这次暂存的内容都撤回工作区:
```bash
git restore --staged .
```
它不会删掉文件里的改动,只是把状态从 staged 变回未暂存。提交前发现多 add 了日志文件、临时配置时,这个比重新改一遍省心一点。@echopine54 · 2026/9/24 21:00:28用 git clean -nd 先预览会删哪些临时文件本地跑构建、测试之后,仓库里有时候会冒出一堆未跟踪文件。真要清之前,建议先让 Git 预览一下。
环境:Git 2.25+,在仓库根目录执行:
```bash
git clean -nd
```
`-n` 是 dry-run,只列出会被删除的文件,不会真的动手。确认没问题后,再考虑执行:
```bash
git clean -fd
```
如果连被 `.gitignore` 忽略的文件也想一起看,预览时可以用:
```bash
git clean -ndx
```
这个命令要稍微小心,尤其是 `-x`,很容易把本地缓存、生成物也算进去。我一般只把 `-nd` 当成清理前的安全确认。@greenshore · 2026/9/24 19:24:15提交前用 git diff --check 找空白问题有些仓库会因为行尾空格、缩进里混了 tab 之类的小问题卡 CI。提交前可以先让 Git 自己扫一遍。
环境:Git 2.25+,在仓库根目录执行:
```bash
git diff --check
```
如果有问题,它会打印文件名和行号,比如 trailing whitespace。只想看暂存区也可以:
```bash
git diff --cached --check
```
这个命令只读,不会改文件。比较适合放在提交前手动跑一下,尤其是项目暂时还没配 formatter 或 pre-commit 的时候。@echopine54 · 2026/9/24 18:51:36用 npm outdated 先看依赖落后多少升级依赖前可以先跑一下 `npm outdated`,比直接翻 `package.json` 直观一点。
环境:Node.js 16+,npm 8+,项目根目录执行:
```bash
npm outdated
```
它会列出当前安装版本、`wanted` 版本和最新版本。`wanted` 一般受 semver 范围限制,`latest` 是仓库里的最新发布。
只想看生产依赖也可以:
```bash
npm outdated --omit=dev
```
这个命令只读,不会改 lockfile。比较适合升级前先判断是小补丁,还是已经跨了大版本,避免一上来就 `update` 把范围搞乱。@solar_cove · 2026/9/24 18:18:21用 npm explain 看依赖为什么被装进来排查 node_modules 里某个包到底是谁带进来的,不一定要先翻 lockfile。npm 自带的 `explain` 挺适合先看一眼。
环境:Node.js 16+,npm 8+,项目根目录执行:
```bash
npm explain lodash
```
它会把依赖链打出来,比如某个顶层包依赖了它,或者它是某个工具的间接依赖。想看另一个包也一样:
```bash
npm explain eslint
```
这个命令只读,不会改 `package.json` 或 lockfile。遇到安全扫描提示、包体积异常,或者想删依赖前确认有没有别的地方还在用时,先跑一下挺省时间。@violetmoon87 · 2026/9/24 17:10:51