如何从已删除的git工作树中恢复分阶段更改?

时间:2017-03-15 23:50:15

标签: git git-worktree

我意外地删除了一个工作树,有了分阶段但未提交的更改! 但是git worktree list仍然显示了工作树(即它没有被修剪过)

说,

/home/me/worktreeexample            0d4f25f [fix/something]
/home/me/                           0fd8c7e [master]

但是因为我刚刚跑rm -rf worktreeexample/,所以没有任何东西     $ ls worktreeexample /

1 个答案:

答案 0 :(得分:1)

worktreeexample中创建一个新文件,告诉git要查找的位置。格式基于.git/worktrees的内容。

因此,对于上面的示例,这将起作用:

echo "gitdir: /home/me/.git/worktrees/worktreeexample" > worktreeexample/.git

然后在git status中运行worktreeexample/将显示所有已删除的文件,并希望您的工作正在进行中。运行

cd worktreeexample
git checkout -- .

只会留下分阶段的变化。

注意如果您有非分页更改并且您销毁了工作目录,那么您就不走运了。