Git setup script
I’ve been plotting to make the git and GitHub setup process a bit easier for new users, so I spent a small portion of my labor day weekend actually doing…
I’ve been plotting to make the git and GitHub setup process a bit easier for new users, so I spent a small portion of my labor day weekend actually doing some labor (the horror). You can see the results in this repo.
So what is this crap? The goal here was to create a simple script users could run that would set all the config options needed in git, generate a key, upload the public key to GitHub, and encourage the use of strong passphrases and ssh-agent. The script needed to be able to run immediately after install, even for msysgit (windows) users. This ruled out my first choice, ruby, since windows users may not have ruby installed. The script also needed to detect msysgit users and help them set up ssh-agent to run automatically, as msysgit does not do this by default. Mac users don’t need this, as ssh-agent is run and even integrates with the user’s keychain, and many flavors of linux appear to run ssh-agent automatically for the user on login.
If you’ve got a fresh install, or just want to play, give the script a whirl:
$ git clone git://github.com/help/setup.git $ setup/setup.sh
I’d love to hear feedback, suggestions for other things the script should set, or just pull requests.
As an added bonus, I also made a guide on passphrases and ssh-agent. Everyone should be using a good passphrase on their keys, I recently switched myself.
Written by
Related posts

GitHub Availability Report: May 2025
In May, we experienced three incidents that resulted in degraded performance across GitHub services.

GitHub Universe 2025: Here’s what’s in store at this year’s developer wonderland
Sharpen your skills, test out new tools, and connect with people who build like you.

GitHub Copilot: Meet the new coding agent
Implementing features has never been easier: Just assign a task or issue to Copilot. It runs in the background with GitHub Actions and submits its work as a pull request.