Git Worktree 实用指南
Git 为我们所有的问题提供了解决方案,你只需要知道在哪里查找。作为开发人员,上下文切换是工作的一部分,你经常需要考虑到这一点。
问题陈述
想象一下:你正在开发一个功能,对一些尚未提交的文件做了大量更改,突然需要处理一个热修复或更高优先级的功能。有两种方法可以解决这个问题:
- 使用 Git Stash 工作流程
- 使用 Git Worktree(您在这里!📍)
Git worktree 来帮忙
Git worktree 帮助您管理附加到同一存储库的多个工作树。
简而言之,您可以通过维护同一存储库的多个克隆来同时检出多个分支。
好了,回到我们的问题!更新变更?新功能?还是热修复?不管是什么,你都需要切换到另一个分支,并在当前工作目录不发生任何变化的情况下继续工作。
假设这是一个新功能,您的工作流程将如下所示:
- 创建项目的副本并切换到新分支
- 创建新特征
- 推它
- 返回上一个工作目录
创建工作树
假设你的功能名称为,feature-x
并且你想要一个同名的分支。你可以在同一个目录下创建额外的工作树,或者将其移动到你想要的路径,我更喜欢后者。
git worktree add
命令创建一个工作树以及一个以路径中的最后一个单词命名的分支。
git worktree add <PATH>
# Create feature-x directory and branch with the same name.
git worktree add ../feature-x
命名分支
如果您想为您的分支赋予一个唯一的名称,那么您可以将-b
标志与add
命令一起使用。
git worktree add -b feature-xyz ../feature-xyz
跟踪远程分支
假设您想要切换到一个新的分支,该分支跟踪您想要推送更改的远程分支。
git worktree add -b <branch-name> <PATH> <remote>/<branch-name>
git worktree add -b feature-zzz ../feature-x origin/feature-zzz
使用本地分支创建工作树
git worktree add <PATH> <branch-name>
git worktree add ../feature-xz feature-xz
使用以下命令查看工作树列表git worktree list
切换工作树
创建工作树很容易,但如果它们分散开来,在它们之间来回切换也同样困难。你必须先git worktree list
复制路径,然后导航到你选择的工作树。为了最大限度地减少这种麻烦,我构建了一个小工具,让你只需输入部分或完整的目录名即可在工作树之间切换。
下载 wt CLI 工具以便在工作树之间更快地切换。
有了它,我可以轻松地在工作树之间切换。 您可以查看工作树列表,这相当于查看工作树列表。现在要转到工作树目录,我只需使用cd 命令进入该目录即可继续工作。要返回主工作树目录,我只需。wt list
git worktree list
feature-x
wt feature-x
wt -
删除工作树
现在您已经创建了一个新的工作树,切换到它并进行更改并推送。要删除工作树,我们可以运行:
git worktree remove <name-of-worktree>
git worktree remove feature-x
结论
Git 工作树是一个便捷的功能,它允许你在项目中进行上下文切换,以便在完全不同的环境中尝试新事物,而无需修改主工作目录。这个功能偶尔会派上用场,但能够轻松完成这项工作真是太棒了。
我希望本指南对您有所帮助,如果您有任何疑问或更正,请随时与我联系。
鏂囩珷鏉ユ簮锛�https://dev.to/yankee/practical-guide-to-git-worktree-58o0