我删除了它的工作目录,因为这个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'
Run Code Online (Sandbox Code Playgroud)
但是'/ Users/zhouhancheng /编程/ github_own/sketch_worktree/pubsub-sketch_tree'已被删除.
tor*_*rek 10
您正在使用git worktree,所以答案是该git worktree文件:
完成链接的工作树后,您只需删除它即可.在资源库中(见"详细信息"下面)最终会被自动删除工作树的管理文件(见
gc.worktreePruneExpire的混帐配置(1) ),或者可以运行git worktree prune在主或任何链接工作树清理任何过时的管理文件.
(强调我的).如果Git认为它已在辅助工作树中签出,则Git不会让您删除该分支.如果辅助worktree已经删除,但GIT中还没有陷入到这个事实,只是运行git worktree prune到告诉 Git的去检查.
我已经删除了它的工作目录
使用 Git 2.17+(2018 年第 2 季度)您会更轻松,因为“ git worktree”已经学会了 ' move' 和 ' remove' 子命令。
请参阅Eric Sunshine ( ) 的commit 7f19def (04 Mar 2018 )。
见提交ee6763a,提交cc73385,提交78d986b,提交c64a8d2,提交9f792bb,提交9c620fc(2018年2月12日),并提交4ddddc1通过(2018年1月24日)Nguy 4 N泰伍2 C维战()。(由Junio C Hamano合并-- --在提交 bd0f794,2018 年 3 月 14 日)sunshinecopclouds
gitster
worktree remove: 新命令此命令允许删除工作树。像“移动”一样,您无法删除主工作树或内部包含子模块的工作树。
对于删除
$GIT_WORK_TREE,未跟踪的文件或任何暂存条目都被认为是宝贵的,因此默认情况下会阻止删除。被忽略的文件并不宝贵。
工作树删除:当
$GIT_WORK_TREE已经消失时允许它
“ git worktree remove”基本上由两件事组成
- 删除
$GIT_WORK_TREE- 删除
$GIT_DIR(即$SUPER_GIT_DIR/worktrees/something)如果
$GIT_WORK_TREE由于某种原因已经消失,我们应该可以通过删除$GIT_DIR.
就我而言,这是因为 rebase 正在进行中。我切换到我想要删除的分支,然后中止变基,然后我就可以删除它。
git branch {branch-to-delete}
git rebase --abort
# or
git merge --abort
git branch main
git branch -D {branch-to-delete}
Run Code Online (Sandbox Code Playgroud)