工作中经常需要支援不同分支的开发和调优工作。使用worktree可以省去每次切换分支的重新编译问题(尤其是大工程,编译一次很久)。worktree可以解决copy多个仓库的方法会大大增加磁盘空间占用。
// 使用方法
// git worktree add -b 远程分支名 本体路径名
git worktree add -b b_test ~/b_test_worktree
// 开发完成后
git worktree remove --force b_test_worktree
worktree 不能管理仓库中已经checkout的分支,会冲突。
worktree的Git管理文件夹在主工程下的 .git/worktrees/b_test_worktree/ 中
有时候提交失败会提示index.lock File exists. Another git process seems to be running in this repository和COMMIT_EDITMSG.sw相关信息。主工程问题需要删除.git中对应的文件。worktree中删除.git/worktrees/b_test_worktree/下对应的文件即可解决。