Powered by Typecho)))
Optimized by EAimTY
日常开发时经常会遇到在稳定分支发hotfix的情况,通常的解决办法是git stash暂存当前工作区内容,再checkout到需要发补丁的分支下工作,完了再切回来。大多数时候这么干没啥问题。不过如果类似node js项目或者其他有大量外部库依赖项目时就麻烦了。比如php或者golang,通常vendor目录都会git ignore。如果刚好工作分支升级了vendor下的依赖库,与即将发补丁的分支依赖库冲突,那就麻烦了,只能clone到别的目录下来做。好在git 2.5已经把这个需求内置实现。这就要介绍今天的主角:git worktree 命令:
git worktree add [-f] [--detach] [--checkout] [--lock] [-b <new-branch>] <path> [<commit-ish>]
git worktree list [--porcelain]
git worktree lock [--reason <string>] <worktree>
git worktree move <worktree> <new-path>
git worktree prune [-n] [-v] [--expire <expire>]
git worktree remove [-f] <worktree>
git worktree unlock <worktree>