1

I have a Git worktree associated with a branch that was somehow deleted.

Nothing seems to work. git status is reporting Initial commit.

I have uncommitted changes. How can I get things back to normal in this worktree?

Brent Bradburn
  • 51,587
  • 17
  • 154
  • 173

1 Answers1

1

Git attempts to prevent you from deleting branches that are currently checked out in any worktree.

However, with some versions of Git-related tools, it may be possible to delete a checked-out branch (I have done it while using gitk launched from a different worktree). If this happens, the worktree will become confused and you will see message like unknown revision HEAD and bad revision 'HEAD'. Normal recovery tools such as gitk --all and git stash become disfunctional due to this confusion.

Your best bet for salvaging the worktree (especially in case you have uncommitted work) is to perform a checkout of the exact revision that was previously associated with the branch. One way to enable this is to run gitk --reflog (which works even though gitk --all does not) and recreate the branch at the correct location.

Once you have recreated the branch, you can check it out and resume your work.


Of interest: Why does git worktree add create a branch, and can I delete it?

Brent Bradburn
  • 51,587
  • 17
  • 154
  • 173