[git] 冷门但实用的 git worktree

663 阅读1分钟

1.1 作用

worktree功能可以在同一个仓库中创建多个工作目录,每个目录对应不同的分支。开发者可以在不切换分支的情况下同时处理多个任务,而不需要频繁地暂存、切换分支或创建多个仓库副本。

即使用worktree能在同一个项目的不同分支直接开发,互不影响,提交会同步。

1.3 应用场景

应用场景:我在feature开发新功能,突然间有个问题要处理,需要修改另个分支的代码,此时我不得不先暂存,再切换到目标分支,改完后再切回feature,应用暂存,这非常麻烦,而worktree能解决这类问题,不用在频繁的切换分支。

解决方法:使用worktree创建新的工作目录另做处理。

创建工作目录相当于把某个分支放到某个目录中开发,其他分支不允许切换到它身上,除非断开联系。

步骤模拟:

1. 创建新的工作目录并在ide打开

2. 处理完成后commit,提交会同步到各个工作目录中

3. 删除新创建的工作目录,并执行prune断开联系

1.4 相关命令

创建:git worktree add -b [新分支] [新分支的磁盘位置] [新分支的源分支]

查看:git worktree list

断开:git worktree prune

1.2 与git clone的差别?好在哪里?

1. 共享同一个仓库的 .git 目录,节省磁盘空间,不用频繁切换分支

2. 创建工作目录相比clone要快的多,大仓库clone很慢的

1.3 最后

文章如果帮到你了,可以点个赞!

2024/12/22:发布文章