All posts

Docs1 min read

Preview destructive actions, then recover

Reset, delete, discard, and force-push show the exact commits or files that would fall away — Recover browses the reflog when something still slips through.

Git is recoverable but not forgiving: the commands that lose work look like the commands that don’t. GitLane shows the consequence before it happens, and keeps a way back when it does.

What you see first

Action What you see first
Reset The commits that would fall away
Delete branch The commits that would fall away
Discard The working-tree changes that would be thrown out
Force-push The remote commits that would be replaced

Not a generic “are you sure?” — the actual list.

If the repository changed between the preview and your confirmation — you committed from a terminal, a script ran, a rebase advanced — the operation fails cleanly instead of acting on stale state.

Force-push always uses --force-with-lease. If someone else pushed since your last fetch, the push is refused rather than silently overwriting their commits.

When something does go wrong, Recover browses the reflog so you can create a branch back at any commit that fell off.

Good to know

Almost nothing in git is actually gone — it’s just unreferenced. Recover is the button that finds those commits.

Stashes are addressed by commit id, not stash@{n}, so dropping the wrong stash that way can’t happen. The read path uses libgit2 with clone/fetch/push compiled out; every write goes through your git binary, so the always-running read path cannot modify the repository.

Full walkthrough: Safety and recovery.

Installers: Download GitLane.