我试图找出是否有任何方法可以交换工作树。我的公司有很多假定特定目录结构的脚本,因此为了能够使用多个工作树,我需要"new"链接的工作树来代替主工作树。
我找到了 git worktree move <worktree> <new-path>
但这不允许移动“主要”工作树,因此没有交换的机会。
理想情况下,会有一个 git worktree swap <worktree> <path>
在哪里:
<path>
是一个工作树,它交换它们 <path>
是一个 commit-ish,它添加了一个新的工作树 <worktree>
's name for the commit-ish,然后交换它们 最佳答案
简短的回答是否定的:主工作树与所有添加的工作树不同。
请注意,您可以将 .git
分开使用 $GIT_DIR
来自任何工作树的目录和/或 $GIT_WORK_TREE
环境变量,和/或 --git-dir
和/或 --git-work-tree
选项(它只是设置环境变量,然后继续,就好像最初设置了环境变量一样)。但总的来说,存储库的主要工作树是特殊的:它的 HEAD
文件位于 .git/HEAD
, 而不是 .git/worktrees/<name>/HEAD
, 例如。
(工作树 W 的每个工作树状态通常存储在 $GIT_DIR/worktrees/W
中。)
关于Git:用链接的工作树交换主工作树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57794908/