
After a reset or rebase, a commit can vanish from the visible branch history while still appearing in the local reference log. The immediate goal is to make the next change safer and easier to explain. Begin with the branch state and the people who depend on it.
Why this deserves attention
Git’s official documentation separates the working tree, index and commit history because each command acts on a different part of that model. A workflow is easier to trust when teammates can see what changed, why it changed and how to recover if an assumption was wrong. Good habits matter more than memorising every flag. Reflog is a recovery clue on the machine where the move happened; it is not a permanent remote backup. A clear explanation of the intended result is usually more valuable than a long sequence of clever commands.
A practical way forward
Inspect the recent reference moves, identify the intended commit and create a temporary branch before making more history changes. Read git status before acting and inspect the diff afterwards. If the change affects a shared branch, communicate the plan before rewriting or merging history.
Picture it in a real situation
A developer who reset the wrong branch can compare commit messages and diffs before selecting the hash to recover. A small, named change is easier for a teammate to review. Record the commit or branch involved so a later investigation can reconstruct the choice.
What to avoid
Avoid running aggressive cleanup while searching for a lost commit, and verify the recovered tree before merging it back. Check whether the branch is shared and whether the command can discard work. A recovery step should be understood before a risky history operation begins.
Takeaway
Make the next change small, reviewable and recoverable. Explain the intent beside the result.
Sources and further reading: Official Git documentation; Git worktree manual.