Context
The main and server profiles intentionally use different Git policies. In particular, server hosts do not have the private GPG key and must keep commit/tag signing disabled, while the local machine keeps signing enabled.
Keeping complete .gitconfig versions on each branch is reliable today, but shared Git settings can drift between profiles over time.
Goal
Split Git configuration into a shared layer and explicit profile layers:
.gitconfig.shared — common aliases, editor, pager, merge, diff, credential, and general Git behavior.
.gitconfig.main — local-machine identity and GPG signing policy.
.gitconfig.server — server/root identity and GPG-disabled policy.
.gitconfig — a small profile-specific loader that includes the appropriate files.
Do not use an implicit if based on hostname, current repository branch, or repository path to detect the machine profile.
Acceptance criteria
Notes
This issue is intentionally deferred until the server-sync workflow is stable. Avoid implementing it as a hostname- or branch-dependent conditional; explicit profile files are easier to audit and safer for root/server use.
Context
The
mainandserverprofiles intentionally use different Git policies. In particular, server hosts do not have the private GPG key and must keep commit/tag signing disabled, while the local machine keeps signing enabled.Keeping complete
.gitconfigversions on each branch is reliable today, but shared Git settings can drift between profiles over time.Goal
Split Git configuration into a shared layer and explicit profile layers:
.gitconfig.shared— common aliases, editor, pager, merge, diff, credential, and general Git behavior..gitconfig.main— local-machine identity and GPG signing policy..gitconfig.server— server/root identity and GPG-disabled policy..gitconfig— a small profile-specific loader that includes the appropriate files.Do not use an implicit
ifbased on hostname, current repository branch, or repository path to detect the machine profile.Acceptance criteria
.gitconfig.sharedwithout duplicated profile-specific policy.mainloads.gitconfig.sharedand.gitconfig.main.serverloads.gitconfig.sharedand.gitconfig.server.mainkeeps GPG commit/tag signing enabled.serverkeeps GPG commit/tag signing disabled and does not require a private signing key.Notes
This issue is intentionally deferred until the server-sync workflow is stable. Avoid implementing it as a hostname- or branch-dependent conditional; explicit profile files are easier to audit and safer for root/server use.