BitByBit Academy presents a guided beginner course for setting up Git correctly and understanding the workflow behind everyday GitHub collaboration.
If you only read one section before doing anything, read this one.
- Click Use this template and create your own repository copy.
- Open the Actions tab in your copy.
- Run Initialize Interactive Course.
- Clone your copy to your machine with HTTPS url using the command below:
git clone https://github.com/your-username/your-repo-name.git- So, replace your-username and your-repo-name with your actual username and repository name.
- Open the first issue that BitByBit Academy creates for you.
This is the fastest and clearest way to start the course correctly.
This README.md is the single source of navigation for the course.
README.md: course map and entrypointdocs/: lesson contentSTART_HERE.md: legacy redirect for older links
This repository is designed to be used as a GitHub template.
- The academy repository stays clean and protected as the source course.
- Each learner clicks Use this template and creates a personal copy.
- The learner clones their own copy, works on branches there, and opens pull requests in that copy.
- The workflows and scripts in this repo are copied too, so autograding works inside the learner's repository.
- Basic terminal usage
- A free GitHub account
- Click Use this template on GitHub and create your own copy of this repository.
- Open the Actions tab in your copy and run Initialize Interactive Course.
- Clone your copy to your machine. If you do not have SSH yet, use HTTPS for the first clone.
- Start with module 01 and follow the modules in order.
- After module 04, run the authentication check in your local copy and switch
originfrom HTTPS to SSH. - After module 05, run the full setup check in your local copy.
- Complete the final evaluation in module 10 on a feature branch in your copy.
- Open a pull request in your copy of the repository and wait for GitHub Actions feedback.
Use the interactive issue flow in your own template copy for the full BitByBit Academy experience.
The interactive mode does this:
- creates the first course issue automatically
- opens the next issue when you close the current one
- gives you incremental checkpoints before the final evaluation
- uses GitHub Actions to grade practice and final pull requests
- docs/01-introduction.md - Understand version control, Git, and GitHub.
- docs/02-install-git.md - Install Git and set
mainas the default branch name for new repositories. - docs/03-configure-identity.md - Configure author identity and separate it from authentication and signing.
- docs/04-ssh-setup.md - Generate an SSH key pair and use it for GitHub authentication.
- docs/05-commit-signing.md - Enable SSH commit signing and understand what GitHub verifies.
- docs/06-first-commit.md - Practice the working directory -> staging area -> commit history loop.
- docs/07-remotes-and-cloning.md - Learn what a remote is, why
originexists, and howfetchdiffers frompull. - docs/08-fork-origin-upstream.md - Distinguish branches from forks and configure
upstream. - docs/09-troubleshooting.md - Diagnose common Git, SSH, signing, and remote errors.
- docs/10-final-evaluation.md - Complete a graded GitHub Flow exercise with automated checks in your template copy.
In your own template copy on GitHub:
- open the Actions tab
- select Initialize Interactive Course
- click Run workflow
- open the issue that gets created automatically
The guided issue sequence is:
- verify SSH authentication
- verify commit signing
- open a practice pull request
- complete the final evaluation
- receive the completion issue
Yes, you should clone your own template copy locally after you run Initialize Interactive Course.
Because SSH is configured later in the course, your first clone should usually be done with HTTPS.
Recommended first clone:
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-nameIf your template copy is private and you do not want to make it public, use one of these options for the first clone:
- GitHub Desktop
gh auth loginfollowed bygh repo clone your-username/your-repo-name
After you finish module 04 and SSH authentication works, switch origin to SSH:
git remote set-url origin git@github.com:your-username/your-repo-name.git
git remote -vAfter that point, keep using SSH for your pushes and pull requests in this course.
Open a terminal in the root of your template copy and run one command:
macOS/Linux:
bash scripts/run-auth-check.shWindows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts/run-auth-check.ps1Windows Command Prompt:
scripts\run-auth-check.cmdUse this after module 04. It checks Git, identity, SSH key material, ssh-agent, and GitHub authentication. It intentionally skips commit-signing checks.
Open a terminal in the root of your template copy and run one command:
macOS/Linux:
bash scripts/run-full-check.shWindows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts/run-full-check.ps1Windows Command Prompt:
scripts\run-full-check.cmdUse this after module 05. It checks everything from the authentication check plus SSH commit-signing configuration.
PASSmeans the check succeeded.WARNmeans the course can continue, but something still needs attention.FAILmeans you should fix that item before moving on.
The scripts print the results directly in your terminal.
BitByBit Academy uses different checks for different learning goals.
- Authentication Check validates Git installation, identity, SSH key material,
ssh-agent, and GitHub SSH access. - Full Setup Check validates everything in the authentication check plus SSH commit-signing configuration.
- Practice Pull Request Check validates your branch naming, target branch, changed file, commit message, and signed commit.
- Final Evaluation Autograding validates the graded submission file, branch naming, target branch, commit message, signed commit, and pull request structure.
Passing means your current step meets the technical rules for that stage. Failing means the workflow found a concrete requirement that still needs to be fixed.
When you open a course pull request in your own template copy, GitHub runs the grading workflow automatically.
You can see the results in two places:
- under the status area at the top of the pull request
- in the Checks tab of the pull request
You should see one of these workflows:
- Practice Pull Request Check
- Final Evaluation Autograding
Open the workflow result to see the detailed PASS or FAIL output from the grader.
BitByBit Academy also posts mentor-style feedback on the pull request so the learner sees:
- what the workflow checked
- whether the current step passed
- where to look next if it failed
You should be able to:
- install and verify Git on your machine
- configure
user.name,user.email, and default branch settings - authenticate to GitHub with SSH
- sign commits with SSH and understand the
Verifiedbadge - explain the difference between the working directory, staging area, and commit history
- clone repositories, inspect remotes, and explain
originandupstream - complete a branch-based pull request workflow in your own template copy that passes automated grading
.github/workflows/initialize-course.ymlcreates the first interactive course issue on demand..github/workflows/course-progress.ymlopens the next course issue when you close the current step..github/workflows/practice-autograding.ymlgrades the practice pull request.scripts/run-auth-check.sh,scripts/run-auth-check.ps1, andscripts/run-auth-check.cmdrun the authentication-stage checks.scripts/run-full-check.sh,scripts/run-full-check.ps1, andscripts/run-full-check.cmdrun the full setup checks.scripts/verify-setup.shandscripts/verify-setup.ps1are the underlying cross-platform setup validators..github/workflows/autograding.ymlruns the final evaluation checks on pull requests in each learner's copy.scripts/grade-practice-pr.shenforces the practice pull request rules.scripts/grade-pr.shenforces the final evaluation rules.