ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 1简介 git worktree 是 Git 的一项强大功能,允许你在一个 Git 仓库中同时检出多个工作树。这意味着你可以在同一个仓库的不同分支上同时工作,而无需克隆多个副本。这在处理不同特性分支、Bug 修复或代码审查时非常有用。 `git worktree` 命令会为指定的分支或提交创建一个新的工作目录(即“工作树”)。每个工作树都有自己独立的工作目录和暂存区,但它们共享同一个 `.git` 数据库。 **注释:** 相比传统的 `git clone` ,`git worktree` 可以在你本地已经存在一个clone 下来的仓库时,再次复用这个仓库,开心的分支,他们共同依赖一个分支 **场景:** * **并行开发**:你可以在不同的工作树中同时处理多个分支,而无需每次切换分支。 * **代码审查**:当需要检查或审查某个分支的代码时,可以创建一个新的工作树专门用于审查,而不会干扰主工作区的开发。 * **紧急修复**:在进行长期开发时,如果遇到需要紧急修复的情况,可以创建一个工作树进行修复,然后提交代码,而不会影响正在开发的特性分支。 ## 语法 ``` git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]] [-b <new-branch>] <path> [<commit-ish>] git worktree list [-v | --porcelain [-z]] 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 repair [<path>…​] git worktree unlock <worktree> ``` ## 示例 ### 已有远程分支 假设远程分支中已经存在分支 ``` > git branch -a remotes/origin/master remotes/origin/demo_1 ``` 1.切换到分支 ``` // 在上层目录切换 demo_1 分支,目录名为 project_demo_1 > git worktree add ../project_demo_1 demo_1 > cd project_demo_1 ``` 修改好后,可直接提交远程 ### 在新分支上修复BUG 在已有分支上开发,突然转入一个项目 1. 在上一层级目录下新增一个 project_demo_1 文件夹,并设置分支名为 feature ``` > git worktree add ../project_demo_1 -b feature > cd project_demo_1 ``` 2. 之后可进行正常的提交 git add,commit,push 3. 完成后 移除分支 ``` git worktree remove feature ```