有时候手上这个分支改到一半,又想去另一个分支看几行代码。直接 checkout 很容易被未提交改动拦住,这种场景可以试试 git worktree。
环境:Git 2.5+。找个空目录跑:
mkdir worktree-demo && cd worktree-demo
git init
printf 'main\n' > app.txt
git add app.txt && git commit -m init
git switch -c feature
printf 'feature\n' > app.txt
git commit -am feature
git switch main
git worktree add ../worktree-feature feature
cat ../worktree-feature/app.txt
最后会在旁边多出一个 worktree-feature 目录,里面停在 feature 分支;原来的目录还留在 main。
看完可以清掉:
git worktree remove ../worktree-feature
我觉得它最适合那种“改到一半但突然要查另一个分支”的小场景,不用 stash 来 stash 去。