有时候手上分支改到一半,又想去另一个分支看点东西。直接 stash 或来回切分支会打断节奏,git worktree 可以在旁边再开一个工作目录。
环境:Git 2.30+。可以这样试一下:
mkdir worktree-demo && cd worktree-demo
git init
printf 'main\n' > note.txt
git add note.txt
git commit -m 'init'
git switch -c feature
printf 'feature work\n' >> note.txt
# 旁边开一个 main 分支的工作目录
git worktree add ../worktree-main main
cat ../worktree-main/note.txt
git worktree list
git worktree remove ../worktree-main
这样当前目录里的半成品还能留着,旁边那个目录可以单独跑命令或看文件。用完记得 git worktree remove 清掉,不然时间久了自己都忘了开过哪些目录。