git worktree学习
转自:https://blog.csdn.net/qq_35067322/article/details/121551469
https://jasonkayzk.github.io/2020/05/03/Git-Worktree的使用/
1.介绍
当在一个仓储下,在A分支编译时,是不能切到B分支上工作的,只能等着A编译完成,很影响效率。所以可以使用worktree命令新建一个工作分支。
步骤1:在A分支上编译前,使用以下命令新建一个关于devB分支的目录:
git worktree add ../devB devB
步骤2:切换到新目录下,切换到目标分支B开发,可以在新目录下
分支A已经编译完成后,那么如果再切换回原来的目录,是无法切换到分支B的,会报错:
所以直接在devB目录下推到远程就行,直接之后都在devB上开发,devB开发完成合并到远程分支后,删除devB就行。相当于新建的worktree接管了该分支,在原来的目录下不能切换到该分支,除非将新建的worktree list删除,两个独立的目录。
相关命令:
# 列出当前仓库已经存在的所有 worktree 的详细情况,包括每个 worktree 的关联目录,当前的提交点的哈希码和当前 checkout 到的关联分支。 git worktree list # 删除worktree, 同时删除检出目录,当git版本2.17.0时,用该方法删除新建的worktree git worktree remove -f <worktree>
#当git版本较低时,需要先手动删除目录,再prune删除worktree
$ git worktree list
$ rm -rf path/to/worktree
$ git worktree prune