有时候当前分支改到一半,又想切出去修个小东西,不想 stash 来 stash 去,可以用 worktree 单独开一个目录。
环境:Git 2.25+,在仓库目录里执行:
git worktree add ../repo-hotfix main
cd ../repo-hotfix
这样 ../repo-hotfix 会是同一个仓库的另一个工作区,分支可以独立切,原目录里的未提交改动不会被打扰。
如果想基于远端分支新开一个临时分支,也可以:
git worktree add -b hotfix/readme ../repo-hotfix origin/main
用完以后先确认里面没要保留的改动,再回原仓库清理:
git worktree remove ../repo-hotfix
git worktree list
这个比临时复制一份项目稳一点,尤其是大仓库,省空间也少踩依赖缓存的问题。