Skip to content
N/H
All projects

Case study / 03 — Developer tool · Open source

GitSetup.

A Git environment ready to work, one identity at a time.

Contribution

CLI tool development

Context

Git configuration on macOS

Technologies

TypeScript · Node.js · Git · SSH / GPG

gitsetup — zsh

# Your environment, your identities.

❯ git-setup apply --dry-run

ONE CONFIGURATION, THREE BUILDING BLOCKS

Git · identities

SSH · connections

GPG · signatures

Example command · preview mode

Example command: preview configuration changes without applying them.

01 / The starting point

The starting point

Setting up Git on a new Mac can involve multiple identities, SSH keys, GPG signing and hooks. GitSetup brings these steps together in a command-line assistant.

02 / My contribution

My contribution

I developed a modular TypeScript tool to configure this environment using either an interactive wizard or a JSON file. Profiles can then be added or edited individually.

03 / Technical decisions

01

Multiple identities

Profiles group Git and SSH settings. Hooks select the identity based on a repository’s remote URL.

02

Preview before applying

Dry-run mode describes the planned changes. Backups and markers isolate the configuration managed by the tool.

03

Straightforward distribution

A Homebrew installation complements installation from source. JSON configuration makes the setup reproducible.

GITSETUP / ONE PROFILE
GitIdentity
SSHConnection
GPGSigning

Preview → apply → maintain

The three elements connected by a GitSetup profile.

04 / A practical challenge

A practical challenge

The tool modifies a personal configuration that may already exist. It needs to preserve unrelated settings, detect necessary changes and remain predictable when run multiple times.

05 / The result

The result

GitSetup provides a wizard, profile management and a change preview. Its source code and installation instructions are available on GitHub.

Next projectNetViewer