我已经删除了它的工作目录,因为这个 git 工作树不再有用,然后我
git branch -D pubsub-sketch-tree
在主存储库的目录中。抛出错误:
error: Cannot delete branch 'pubsub-sketch-tree' checked out at '/Users/zhouhancheng/编程/github_own/sketch_worktree/pubsub-sketch_tree'
但是“/Users/zhouhan Cheng/Smashing/github_own/sketch_worktree/pubsub-sketch_tree”已被删除。
您正在使用
git worktree
,所以答案就在 git worktree
文档:
使用完链接的工作树后,您只需将其删除即可。存储库中工作树的管理文件(请参阅下面的“详细信息”)最终将被自动删除(请参阅
git-config(1)中的gc.worktreePruneExpire
),或者 您可以在主目录或任何目录中运行链接工作树以清理任何陈旧的管理文件。git worktree prune
(强调我的)。如果 Git 认为该分支已在辅助工作树中检出,则它不会让您删除该分支。如果辅助工作树已经被删除,但 Git 还没有意识到这一点,只需运行
git worktree prune
来 告诉 Git 去检查。
我已经删除了它的工作目录
您将更轻松地使用 Git 2.17+(2018 年第 2 季度),因为“
git worktree
”已经学会了“move
”和“remove
”子命令。
请参阅 Eric Sunshine (sunshineco
)
的commit 7f19def(2018 年 3 月 4 日)。
pclouds
).gitster
-- 合并于 commit bd0f794,2018 年 3 月 14 日)
:新命令worktree remove
此命令允许删除工作树。就像“移动”一样,你不能 删除主工作树,或其中包含子模块的工作树。
对于删除
,未跟踪的文件或任何暂存的条目都是 被认为是珍贵的,因此默认情况下会阻止删除。被忽略 文件并不珍贵。$GIT_WORK_TREE
worktree 删除:当
已经消失时允许它$GIT_WORK_TREE
“
git worktree remove
”基本上由两件事组成
- 删除
$GIT_WORK_TREE
- 删除
(即$GIT_DIR
)$SUPER_GIT_DIR/worktrees/something
如果
由于某种原因已经消失了,我们应该能够 通过删除$GIT_WORK_TREE
来完成作业。$GIT_DIR
就我而言,这是因为正在进行变基。我切换到我想要删除的分支,然后中止变基,然后我就可以删除它了。
git branch {branch-to-delete}
git rebase --abort
# or
git merge --abort
git branch main
git branch -D {branch-to-delete}
对我来说,解决方案是做
git bisect reset
删除文件夹后需要修剪工作树:
git worktree prune