top | item 46963107

Show HN: GitEcho – set-and-forget Git mirroring on every push

1 points| prashantsengar | 19 days ago |github.com

I built GitEcho after the recent GitHub outages led me to reading this HN comment: https://news.ycombinator.com/item?id=46947085.

My goal was simple: make GitHub mirroring dead simple and invisible. Set it up once, then forget it.

I wanted "push to GitHub" to also mirror to another provider (GitLab/Bitbucket/Gitea/self-hosted) without changing my day-to-day workflow.

How it works:

- ge add <mirror-url> installs a local pre-push hook

- normal git push origin ... still works as usual

- GitEcho captures pushed refs and mirrors them in the background

- it uses existing SSH keys / git credential helper (no new token system)

Install:

uv tool install gitecho

Quick start:

ge add git@gitlab.com:you/repo.git

git push origin main

Why not just add another remote and push yourself?

You can, and that works. I am lazy and forgetful. I wanted something I could set up quickly and never think about again.

GitEcho packages the boring parts: hook setup, background push, non-interactive auth behavior, and logs (`ge logs`).

Current behavior:

- safety-first by default: it checks origin refs before mirror push

- if origin likely rejected, mirror push is skipped and logged

- optional best-effort mode via `GITECHO_CONTINUE_ON_ORIGIN_REJECT=1`

Planned next:

- auto-create mirror repos on providers

- watch a folder and auto-setup all repos (instead of per-repo setup)

Repo: https://github.com/prashantsengar/GitEcho

Mirrored at: https://gitlab.com/prashantsengar/gitecho

discuss

order

No comments yet.