Accounts & binding
Every repository follows its own binding — commit author and push credential come from the repo, not from whichever account you touched last.
One repo, one bound account
An account in HydraTree is a signed-in identity on a Git host — GitHub.com via OAuth or PAT, GitLab.com or self-hosted GitLab (HTTPS) via PAT. You can label each one — personal, work, client — and keep as many as you need signed in at once.
Each repository binds to exactly one of them and keeps that binding until you change it. The binding drives two things on every operation:
- Commit author — commits, merges, cherry-picks, and reverts are attributed to the bound account's username on its host and its no-reply email (or the commit email you set for that account), applied per operation rather than written into the repo's config. Labels only tell accounts apart in the app; they never go into a commit.
- Push credential — fetch, pull, and push authenticate with the bound account's token when the remote is HTTPS. An SSH remote (
git@…) uses your machine's SSH keys instead of the bound account; switch the remote to HTTPS if you want pushes to follow the binding.
There is no global identity to flip: opening a work repo and a personal repo side by side commits as the right person in each.
Changing a repo's binding
Rebind from Settings → Repository: pick the repository, pick the account. Future commits and pushes follow the new binding immediately; history is untouched.
Worktrees inherit the parent repository's binding, so parallel checkouts of the same repo always share one identity.
Guardrails
Commit and push are blocked when the bound account is missing or needs re-authentication. Push is also blocked when the remote reports no access.
When a token expires or is revoked, that account shows needs re-authentication in Settings → Accounts. Only repos bound to it are affected — other accounts keep working. Re-authenticate the account and its repos resume where they left off.