Git worktree 用法简述

你可能遇到过这样的情况:你正在开发一个功能时,突然有一个 bug 出现,你需要马上开始修复它。或者你正在进行一个漫长的构建任务,但需要在另一个分支上快速构建一个版本。又或者你发现了一个不相关的 bug,想修复它但不想污染当前分支。无论是哪种情况,你可能都想过使用同一个代码库的第二份克隆。然而,Git 为此提供了一个更好的工具。

它叫做 worktree。Git worktree 是一种简单的方法,可以为另一个分支创建一个单独的工作目录,而无需多次克隆相同的代码库。

  • 可以同时修复多个 bug: 你可以为每个 bug 创建一个工作目录,并行进行修复,提高修复效率。
  • 开发新功能的同时进行代码审查: 你可以在一个工作目录中进行代码审查,同时在另一个工作目录中继续开发新功能。
  • 测试不同的代码版本: 你可以为不同的代码版本创建工作目录,方便进行比较和测试。

file

如何使用 Git Worktree

你可以使用以下命令创建一个新的 worktree:

git worktree add ../my_second_worktree the_other_branch

这个命令会生成一个新文件夹,里面会检出 the_other_branch 分支。你可以在这个新目录中独立工作,并使用所有常规的 Git 命令。

你可以通过以下命令快速查看创建的所有 worktree:

git worktree list

例如:

/Users/charlesfeval/git/my_repo                   bd502b1 [user/chfeval/240614_that_feature]
/Users/charlesfeval/git/my_repo--other_worktree   15d0988 [user/chfeval/240616_fix_versionin]
/Users/charlesfeval/git/my_repo--bugfix_2         9c26708 [user/chfeval/240617_fix_rockin]

最后,当你完成了 worktree 的工作,可以使用以下命令移除它:

git worktree remove ../my_second_worktree

Git Worktree 官方文档用法

用法:
  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>

参考链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注