Skip to main content

Git Setup Guide

This guide explains how to set up Git on different operating systems, generate SSH keys, configure SSH agents, and manage global and repository-specific Git settings.


1. Install Git

Windows

Download Git for Windows:
https://git-scm.com/download/win

During installation, choose: - Use Git from Command Prompt - OpenSSH (recommended) - Checkout Windows-style, commit Unix-style

For easy there is the git GUI for windows you can download it:
https://central.github.com/deployments/desktop/desktop/latest/win32

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install git

macOS

brew install git

2. Generate SSH Keys

Run:

ssh-keygen -t ed25519 -C "your_email@example.com"

Press Enter to accept default file path:
~/.ssh/id_ed25519

When asked for a passphrase, enter one or press Enter to skip.


3. Add SSH Key to SSH Agent

Start SSH agent

Linux/macOS:

eval "$(ssh-agent -s)"

Windows (Git Bash):

eval $(ssh-agent)

Add key

ssh-add ~/.ssh/id_ed25519

4. Add SSH Key to GitHub/GitLab/Bitbucket

Show the public key:

cat ~/.ssh/id_ed25519.pub

Copy and paste into your Git provider's SSH settings.


5. Set Global Git Username & Email

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

Check:

git config --global --list

6. Set Repo-Specific Username & Email

Inside the repo folder:

git config user.name "Other Name"
git config user.email "other_email@example.com"

Check:

git config --list

7. Git Config File Example

Global Config File

Location: - Linux/macOS: ~/.gitconfig - Windows: C:\Users\USER\.gitconfig

Example:

[user] name = Your Name email = your_email@example.com

[core] editor = nano


8. Using Multiple Git Accounts (Example: work & personal)

Create SSH keys:

ssh-keygen -t ed25519 -C "personal@example.com" -f ~/.ssh/id_ed25519_personal
ssh-keygen -t ed25519 -C "work@example.com" -f ~/.ssh/id_ed25519_work

Add both:

ssh-add ~/.ssh/id_ed25519_personal
ssh-add ~/.ssh/id_ed25519_work

SSH Config (~/.ssh/config)

Personal GitHub

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_personal

Work GitHub

Host work.github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_work

Clone repo using work profile:

git clone git@work.github.com:company/repo.git

9. Test SSH Connection

ssh -T git@github.com
ssh -T git@work.github.com