我不小心删除了一个工作树,其中包含分阶段但未提交的更改!但git worktree list
仍显示工作树(即尚未修剪)
说,
/home/me/worktreeexample 0d4f25f [fix/something]
/home/me/ 0fd8c7e [master]
但是因为我刚跑rm -rf worktreeexample/
,所以那里什么都没有 $ ls worktreeexample/
我不小心删除了一个工作树,其中包含分阶段但未提交的更改!但git worktree list
仍显示工作树(即尚未修剪)
说,
/home/me/worktreeexample 0d4f25f [fix/something]
/home/me/ 0fd8c7e [master]
但是因为我刚跑rm -rf worktreeexample/
,所以那里什么都没有 $ ls worktreeexample/
创建一个新文件以worktreeexample
告知git
查找位置。格式基于.git/worktrees
.
因此,对于上面的示例,这将起作用:
echo "gitdir: /home/me/.git/worktrees/worktreeexample" > worktreeexample/.git
然后运行git status
将worktreeexample/
显示您所有已删除的文件,并希望您正在进行的工作也可以提交。跑
cd worktreeexample
git checkout -- .
这将只留下分阶段的变化。
请注意,如果您有未暂存的更改并且您破坏了工作目录,那么您就不走运了。