You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is no way to see or change which identity a commit is made with, and no
support for using different identities in different repositories.
"Manage multiple accounts" is GitHub Desktop's second-most-reacted issue of all time
at 1,365 reactions — behind only "GitHub Desktop for Linux?". The use case is
mundane and extremely common: a work identity and a personal identity on the same
machine, and the cost of getting it wrong is a commit pushed to a public repo with
a corporate email in it, which is unfixable after the fact.
Where we are today
src-tauri/src/git/signature.rs — default_signature(repo) reads whatever git
config resolves to, and returns AppError::NoSignature when user.name or user.email is missing. That is the whole story.
Show the identity. The commit panel should name the identity the commit will
be made with, resolved the way git resolves it. This alone prevents most of the
damage.
Set it, at both scopes. Edit user.name / user.email for the current
repository (--local) or globally, from Settings and from the commit panel's
identity affordance. Making the scope explicit in the UI is the point — a lot of
the confusion here is users not knowing which scope they are editing.
Named identities. A small set of saved identities (label, name, email,
optionally a signing key) and a per-repository choice of which one applies.
Persisted in our own settings, not in git config, with the chosen one written to
the repo's local config so the CLI agrees with us.
There is no way to see or change which identity a commit is made with, and no
support for using different identities in different repositories.
"Manage multiple accounts" is
GitHub Desktop's second-most-reacted issue of all time
at 1,365 reactions — behind only "GitHub Desktop for Linux?". The use case is
mundane and extremely common: a work identity and a personal identity on the same
machine, and the cost of getting it wrong is a commit pushed to a public repo with
a corporate email in it, which is unfixable after the fact.
Where we are today
src-tauri/src/git/signature.rs—default_signature(repo)reads whatever gitconfig resolves to, and returns
AppError::NoSignaturewhenuser.nameoruser.emailis missing. That is the whole story.CommitOptions.author_overrideexists and is used for the co-author /author-override UI (Design & UX review: tree view, visual polish, app flow + feature gaps vs Fork/GitKraken/Sublime Merge/IntelliJ/TortoiseGit #61 D1), but that is a per-commit override, not a managed
identity — it does not set the committer, does not persist, and is not surfaced
as "who am I in this repo".
user.name/user.emailat either scope. On a fresh machine withno global identity the user gets
NoSignatureand no way to fix it in-app(Stability pass: clone, stage/commit, push/pull and diff must survive launch day #212 already flags the error legibility half of this).
How
be made with, resolved the way git resolves it. This alone prevents most of the
damage.
user.name/user.emailfor the currentrepository (
--local) or globally, from Settings and from the commit panel'sidentity affordance. Making the scope explicit in the UI is the point — a lot of
the confusion here is users not knowing which scope they are editing.
optionally a signing key) and a per-repository choice of which one applies.
Persisted in our own settings, not in git config, with the chosen one written to
the repo's local config so the CLI agrees with us.
signCommitsis already tri-state per Design & UX review: tree view, visual polish, app flow + feature gaps vs Fork/GitKraken/Sublime Merge/IntelliJ/TortoiseGit #61 D6; a signing keybelongs to an identity, so the identity is the natural place to hang it.
default editor per repository
(55 reactions) is the same "per-repo override" shape.
Not a duplicate of
management surface.
From the competitor research sweep (Aug 2026).