主要观点:Git worktrees 很棒,但有时会落后于传统的git checkout
。通过使用fzf和一些 bash 脚本可以改善 worktrees 的一些不足之处。
关键信息:
- Worktrees 可让在同一仓库中同时有多个 checkout,每个 checkout 在单独目录,如创建新工作树
git worktree add -b <branch-name> <path> <from>
。 - Worktrees 的不足之处包括分支跳转不方便(不能像
git checkout
那样直接跳转)、分支预览不直观、缺少 shell 补全功能。 - 通过自定义函数
gwj
等可以利用 fzf 改善这些问题,如快速跳转到指定工作树、预览工作树的提交记录等。
重要细节: - 临时分支方法需创建部分非工作提交然后重置;stash 方法需记住 stash 及处理未跟踪文件等。
git branch -v
可预览分支,而查看工作树的最近活动需额外操作。gwj
函数通过fzf
列出工作树,选择后cd
进入,还可利用--preview
预览提交记录,添加--query
可提前填充提示并加快筛选速度等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。