Skip to content

Written by the people building GitAegis

The blog

Engineering write-ups about Git internals, recovery, and how this product is built. Posts about what git reflog actually keeps and what it silently does not. Posts about object reachability, packfiles, and the exact moment a commit stops being findable.

What you will not find here: launch announcements dressed as tutorials, listicles about “10 Git commands you should know”, or a post whose real purpose is to rank for a keyword and funnel you to a pricing page.

If a post teaches you something you can use in a terminal without ever installing GitAegis, it did its job.

No newsletter · No tracking pixels · Nothing here is gated behind an email address

Posts

Nothing published yet.

10 posts are commissioned and not one of them has a body yet. They are write-ups on reflog retention, object recovery and index state after a crash: a half-right paragraph about git gc would do this product more damage than an empty index, so nothing appears here until it is written and checked.

What is commissioned: none of it published

  • Briefed, not yet writtengit internalsrecovery

    What git reflog actually keeps, and what it doesn't

    The reflog is the recovery tool everyone reaches for, and it records less than most people assume. What it holds, for how long, and the four things it never had.

  • Briefed, not yet writtengit internalsdesign

    Why we never run git gc

    Garbage collection is the operation that turns recoverable work into unrecoverable work. GitAegis does not implement it, not behind a confirmation, not behind a toggle.

  • Briefed, not yet writtenrecoverycapsules

    Six things a recovery capsule captures that the reflog doesn't

    Refs, index, staged changes, working changes, untracked files, operation state, and why a snapshot of only the first one is the reason your last recovery went badly.

  • Briefed, not yet writtenrecoveryhow-to

    How to recover a commit nothing points at

    A practical walkthrough with plain Git: find the object, confirm it is the one you want, and put a branch back on it, plus where this approach stops working.

  • Briefed, not yet writtengit internalssafety

    Force-push-with-lease is not a safety net

    `--force-with-lease` protects the remote from you. It does nothing for your local state, and it is not an undo.

  • Briefed, not yet writtengit internalsrecovery

    What happens to your index when Git crashes mid-rebase

    REBASE_HEAD, the sequencer todo list, and the half-written index: what survives a crash, what does not, and how to tell which state you are in.

  • Briefed, not yet writtendesignrecovery

    Designing an undo you can trust

    An undo that sometimes works is worse than none, because it changes what people are willing to risk. The design rules we held to.

  • Briefed, not yet writtengit internals

    Reading a Git object by hand

    zlib, the object header, and the tree format: enough to verify with your own eyes that the commit you are about to restore is the one you meant.

  • Briefed, not yet writtenhow-tomigration

    Migrating from Sourcetree

    What carries over, what does not, and how to keep your existing clones, credentials and hooks working while you switch clients.

  • Briefed, not yet writtendesign

    The operations we deliberately did not implement

    Every product is defined as much by what it refuses to do. Here is the list, and the reasoning behind each entry.

Titles and scopes only. A post appears above with a date and a byline once it is written and checked. These previews are not links, because there is nothing yet to link to.

How this blog is run

Three standing rules, in force from the first post.

Corrections and rebuttals

Technical posts are wrong sometimes. When one of ours is, we correct the post in place, date the correction, and say what changed at the bottom. We do not quietly edit and move on.

If you think a post is wrong, write to support@gitaegis.com with the specifics. A correction that improves a post gets credited by name unless you ask us not to.

Republishing

You may quote any post with attribution and a link back. For full-text syndication or translation, write to press@gitaegis.com. The answer is usually yes.

Press and brand kit →

No feed, no mailing list

Nothing has been published, so there is nothing to syndicate and nothing to send. No address is collected on this page, and none is collected anywhere else on this site for a newsletter.

Free edition · No account required

A recovery capsule before every risky Git operation.

You see the exact commands before they run, and the operation is refused if the capsule cannot be written.

Requires Git 2.38.0 or newer, already installed.

Every risky operation, in this order

  1. Previewthe exact commands, shown before anything runs
  2. Capsulerefs, index, staged and working changes, untracked files, operation state: written to disk first
  3. Executethe commands as shown, or not at all
  4. Journalplan, commands, capsule id, outcome
No capsule, no operation. Restore plans, previews, and takes its own capsule.