Skip to content

Set your name and email (used in commits)

This guide covers Phase 3 of the Quick Start β€” creating your Git repository and configuring GitHub for the IT-Journey project. Every Jekyll site lives in a Git repository, and this phase sets yours up.


Prerequisites

  • GitHub CLI (optional but recommended)
  • Git installed and configured
  • A GitHub account

Confirm your tools:

macOS:

brew -v

Windows:

winget -v

Install GitHub CLI

macOS

brew install gh

Windows

winget install git.git
winget install GitHub.cli

Linux (Ubuntu/Debian)

curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update && sudo apt install gh

Verify

gh --version

Configure Git Identity

# Set your name and email (used in commits)
git config --global user.name "Your Full Name"
git config --global user.email "your-email@example.com"

# Set default branch name
git config --global init.defaultBranch main

# For GitHub noreply email (replace <username>):
git config --global user.email "<username>@users.noreply.github.com"

# Verify
git config --list

Authenticate with GitHub

# Login to GitHub CLI (follow the interactive prompts)
gh auth login

# Verify authentication
gh auth status

Create Your Repository

Choose one of these three approaches:

Fork the full IT-Journey repository to get all content, themes, workflows, and configuration:

cd ~
mkdir -p github && cd github
gh repo fork bamr87/it-journey
cd it-journey

This creates a fork under your GitHub account and clones it locally.

Option B: Start Fresh with zer0-mistakes

Create a new repository and add the zer0-mistakes theme from scratch:

mkdir my-site && cd my-site
git init
git remote add origin https://github.com/YOUR-USERNAME/my-site.git

Then add the theme configuration manually (see Jekyll Setup).

Option C: Use the zer0-mistakes Installer

One-command setup that creates the Gemfile, docker-compose.yml, starter _config.yml, and a GitHub Actions workflow:

curl -fsSL https://raw.githubusercontent.com/bamr87/zer0-mistakes/main/install.sh | bash

Repository Structure

A fully configured Jekyll site using the zer0-mistakes theme looks like this:

my-site/
β”œβ”€β”€ _config.yml              # Main Jekyll configuration
β”œβ”€β”€ _config_dev.yml           # Development overrides
β”œβ”€β”€ Gemfile                   # Ruby dependencies
β”œβ”€β”€ docker-compose.yml        # Docker development environment
β”œβ”€β”€ Dockerfile                # Container build definition
β”œβ”€β”€ index.md                  # Homepage
β”œβ”€β”€ 404.html                  # Custom error page
β”œβ”€β”€ _data/                    # Site data files
β”‚   β”œβ”€β”€ navigation/           # Menu configurations (YAML)
β”‚   └── ui-text.yml           # UI string translations
β”œβ”€β”€ _includes/                # Reusable HTML partials
β”œβ”€β”€ _layouts/                 # Page templates
β”œβ”€β”€ _plugins/                 # Custom Jekyll plugins
β”œβ”€β”€ assets/                   # Static files (CSS, JS, images)
β”œβ”€β”€ pages/                    # Content collections
β”‚   β”œβ”€β”€ _posts/               # Blog posts (YYYY-MM-DD-slug.md)
β”‚   β”œβ”€β”€ _quests/              # Gamified learning content
β”‚   β”œβ”€β”€ _docs/                # Reference documentation
β”‚   β”œβ”€β”€ _quickstart/          # Quick start guides
β”‚   β”œβ”€β”€ _notebooks/           # Jupyter notebooks
β”‚   β”œβ”€β”€ _notes/               # Draft notes
β”‚   └── _about/               # About pages
β”œβ”€β”€ scripts/                  # Automation scripts
β”œβ”€β”€ test/                     # Testing tools
β”œβ”€β”€ docs/                     # Developer documentation
└── .github/                  # GitHub config & CI/CD workflows

Add Submodules (Optional)

If your project uses Git submodules:

git submodule add https://github.com/bamr87/winget-packages.git winget

# If the submodule directory is empty, initialize it:
git submodule update --init

What's Next

Next Step Guide
Install Jekyll and the zer0-mistakes theme Jekyll Setup
Configure _config.yml for your site Site Configuration
Set up your development environment Machine Setup

IT-Journey Quests: Git Basics Β· GitHub Pages Basics

IT-Journey Docs: Repository Structure

External Docs: GitHub: Creating a Repository Β· Git Documentation