Heidelberg AICurriculum
Track 14 · Advanced
14.2

GitHub

Where the world's code lives — and where AI agents now work too

7 lessons 2026-08-08 AI-generated

1Overview

The dominant code-hosting platform (repos, pull requests, Issues, Actions, Codespaces), launched 2008 and owned by Microsoft since 2018.

GitHub is the platform behind most of the code you'll ever touch: repositories, pull requests, Issues, and Actions for CI/CD, all built on Git. It's also where AI coding agents increasingly do real work — turning a GitHub Issue into a finished pull request without a human writing the code.

GitHub is the platform where code gets hosted, reviewed, and shipped — repositories, pull requests, Issues, and GitHub Actions for CI/CD. This chapter is about the platform itself, not the Copilot assistant (that has its own chapter): here the focus is how GitHub organizes collaboration, and how AI agents increasingly work directly inside it — the Copilot coding agent turns an Issue into a pull request on its own, and GitHub's official MCP server lets any AI agent read and write repos, Issues, and PRs.

1.2After this chapter you can
Explain what GitHub adds on top of Gitrepos, pull requests, Issues, Actions
Open your first pull request on a real repository
Understand how AI agents (Copilot coding agent, MCP-connected assistants) now operate directly on GitHub
Weigh GitHub's proprietary, Microsoft-owned model against the open alternative (Gitea)
1.3Best for

Hosting and collaborating on code — and increasingly, the place where AI coding agents like the Copilot coding agent open pull requests on their own.

1.4Watch out

Proprietary and Microsoft-owned — no self-hosting on the free/cheap tiers, and workflows written in Actions YAML are hard to move elsewhere.

1.5Free vs paid

Free tier covers unlimited public/private repos; Team is $4/user/mo, Enterprise from $21/user/mo. Verified students get GitHub Pro and Copilot free via the Student Developer Pack.

2Lessons 7

2.1 Authenticate to GitHub using SSH

Push and pull GitHub repositories over SSH without passwords

  1. Generate an ED25519 key pair with ssh-keygen –t ed25519 -C "your_email@example.com"
  2. Start the SSH agent and add the private key using ssh-agent and ssh-add ~/.ssh/id_ed25519
  3. Display the public key with cat ~/.ssh/id_ed25519.pub and copy its contents
  4. Open GitHub Settings → SSH and GPG keys, click New SSH key, paste the copied key, and save
  • You'll see The key appears in the GitHub SSH keys list and ssh -T git@github.com reports successful authentication
  • Takeaway SSH keys provide a reusable, password‑less identity for all GitHub operations
  • Check Which command do you use to display the public part of your newly generated ED25519 key so it can be added to GitHub?

2.2 Create and label a new issue in a repository

A GitHub Issue is a discussion thread used to track work, bugs, or feature ideas.

You will be able to open an issue with a title, description, and label in any repository you own.

  1. Open the repository page on github.com in your browser.
  2. Click the Issues tab and then the New issue button.
  3. Enter a concise title and a detailed description of the work to be done.
  4. Add at least one label (e.g., bug, enhancement) using the Labels dropdown.
  5. Click Submit new issue to publish it.
  • You'll see A new issue appears in the list with the title, description, and chosen label displayed.
  • Takeaway Issues provide a structured way to capture work items that can later be acted on by humans or AI agents.

2.3 Ask Copilot to generate a pull request from an open issue

GitHub Copilot agents can read an issue and automatically create code changes packaged as a pull request.

You will trigger the Copilot agent to produce a PR that implements the work described in your issue.

  1. Open the issue you created in the previous lesson on github.com.
  2. Click the Copilot button (or open the Copilot chat panel) shown in the issue view.
  3. In the chat prompt, type a request such as “Create a pull request that implements this feature.”
  4. Confirm the agent’s suggestion when it lists the files to be changed.
  5. Allow Copilot to submit the generated changes; a new pull request will appear automatically.
  • You'll see A new pull request is listed under the Pull requests tab, showing the commits and file diffs that Copilot created.
  • Takeaway AI agents can bridge the gap between planning (issues) and implementation (PRs) without manual coding.

2.4 Clone a repository using SSH

Create an editable local project folder that is linked to its remote origin

  1. Click Code on the repository page and choose SSH, then copy the displayed clone URL
  2. Open a terminal window and navigate to the directory where you want the project stored
  3. Run git clone URL> replacing URL> with the copied address
  4. Enter the newly created folder with cd and verify the clone by running git status
  • You'll see A new directory appears containing the source files, a .git folder, and git status reports ‘nothing to commit, working tree clean’
  • Takeaway Cloning over SSH gives you a fully linked workspace that stays synchronised with the remote repository
  • Check After cloning via SSH, which Git command confirms that your local copy is correctly linked to the remote repository?

2.5 Update a file and publish it on GitHub

Modify a file, create a commit, and push the change to the remote repository using GitHub Desktop

  1. Open the repository in GitHub Desktop
  2. Edit the desired file in your editor and save it
  3. Enter a concise summary then click Commit to main
  4. Click Push origin to upload the commit
  • You'll see The updated file appears on GitHub with your new commit message
  • Takeaway GitHub Desktop enables editing, staging, committing and pushing without using the command line
  • Check What button in GitHub Desktop finalises a local change before it is sent to the remote repository?

2.6 Run automated checks on the generated pull request

GitHub Actions are CI/CD workflows that automatically test code when a pull request is opened.

You will verify that the PR triggers an Action workflow and view its results.

  1. Navigate to the Pull requests tab and open the PR created by Copilot.
  2. Scroll down to the Checks section beneath the file diff.
  3. Click the name of any failing or passing check to see detailed logs.
  4. If no checks run, add a simple workflow file (e.g., .github/workflows/ci.yml) in the repository’s default branch that runs echo test on push.
  5. Refresh the PR page and confirm that the new workflow executes automatically.
  • You'll see The Checks panel shows one or more jobs with a green checkmark for success or a red X for failure, confirming CI execution.
  • Takeaway Automated checks ensure generated code meets quality standards before it can be merged.

2.7 Review and merge the AI‑generated pull request

Merging a pull request integrates its changes into the target branch after review.

You will perform a code review of the Copilot PR, resolve any issues, and merge it safely.

  1. In the open PR, click Files changed to examine the diffs produced by Copilot.
  2. Add inline comments on any lines that need clarification or adjustment.
  3. If changes are required, use the Add a review button, select Request changes, and submit your feedback.
  4. After updating (or if no changes are needed), click Merge pull request and choose Create a merge commit.
  5. Confirm the merge to integrate the PR into the default branch.
  • You'll see The PR status changes to Merged, and the new commits appear in the repository’s main branch history.
  • Takeaway Even AI‑generated code benefits from human review before integration, combining automation with oversight.

3You’ll know it worked 85 checkable outcomes in this chapter

  • A new folder appears containing the repo's files and .git metadata
  • The card's position changes from one column (e.g., To do) to another (e.g., In progress)
  • The PR appears in the repository’s Pull Requests tab with status “Open” and shows diff of changes
  • The app shows your GitHub username in the top‑right corner
  • ls -a shows a .git directory
  • The repository folder appears locally with all source files and a `.git` directory
  • Running `git config --list` shows the user.name and user.email entries
  • The file shows no modifications (no M flag) in the app

85 outcomes in all — one per recipe below.

4FAQ, Tips & How-to 88

one problem, one solution, one action
How-to Everyone

Need to finalize your app and check layout

You can finalize the app by committing changes, pushing to GitHub, and verifying responsiveness in browser dev tools

Leon van Zyl ↗ Summary → AI-generated
How-to Everyone

Need a local copy of a remote repo

You can duplicate a repository onto your machine with one command

NeuralNine ↗ Summary → AI-generated
How-to Everyone

Need to pick which files go into your next commit

You can select which changes to include in the next commit

NeuralNine ↗ Summary → AI-generated
How-to Everyone

Want to snapshot staged changes with a message

You can save a snapshot of your project history

NeuralNine ↗ Summary → AI-generated
How-to Everyone

Your commits don’t show who you are

You can identify yourself in commit history

NeuralNine ↗ Summary → AI-generated
How-to Everyone

Local commits aren’t appearing on the remote

You can share your work with others by pushing to a remote branch

NeuralNine ↗ Summary → AI-generated
How-to Everyone

You can review what will be committed or compare branches

NeuralNine ↗ Summary → AI-generated
How-to Everyone

Accidentally staged a file

You can remove a staged file without discarding its changes

NeuralNine ↗ Summary → AI-generated
How-to Everyone

My local branch is behind collaborators’ work

You can keep your local copy up to date with collaborators' work

NeuralNine ↗ Summary → AI-generated
How-to Everyone

Having to redo the same merge conflicts every time

Turns on Git's ability to remember and replay merge resolutions

NeuralNine ↗ Summary → AI-generated
How-to Everyone

Older builds crash loading MTP models

Older builds crash when loading MTP models; always use the newest commit

Tim Carambat ↗ Summary → AI-generated
How-to Everyone

I need to define a concrete task for my team

A well-scoped Issue tells anyone (or an AI) exactly what needs to change and how success is measured

~5 min · no code Lesson → AI-generated
How-to Everyone

Want to see an issue move across columns

Linking the Issue to a Project creates a card you can move across columns as work advances

~5 min · no code Lesson → AI-generated
How-to Everyone

Want to change an issue’s state just by dragging its card

Moving a card reflects the current state of work without editing the Issue itself

Lesson → AI-generated
How-to Everyone

Need a ready quantum learning workspace

Install the Microsoft Quantum Development Kit (QDK) extension, open an empty folder, and let the extension create lesson files. The folder acts as a persistent workspace so you can resume later.

YouTube ↗ Lesson → AI-generated
How-to Everyone

Need a step‑by‑step quantum computing intro

The QDK learning panel provides a structured curriculum with units, lessons, and coding exercises. Clicking ‘Start Learning’ launches the interactive chat agent that tracks progress.

YouTube ↗ Lesson → AI-generated
How-to Everyone

Want a specific quantum algorithm lesson but don’t know where it is

You can ask the built‑in QDK learning agent any question; it knows your current position in the curriculum and can jump you to specific units like Grover’s Search.

YouTube ↗ Lesson → AI-generated
How-to Everyone

Each coding exercise can be solved directly in VS Code. Use the “Check my solution” button to run tests; if it fails, ask the agent for a hint or explanation.

YouTube ↗ Lesson → AI-generated
How-to Everyone

Want the latest Git on macOS

Homebrew is a package manager for macOS that simplifies installing and updating software. Using it to install Git ensures you have the most recent version without manual downloads.

GitHub ↗ Lesson → AI-generated
How-to Everyone

You want your commits to show who you are

Git records the author of each commit; configuring user.name and user.email ties changes to you and lets collaborators see who made what.

GitHub ↗ Lesson → AI-generated
How-to Everyone

A folder isn’t under version control

`git init` creates the .git directory that stores all version‑control data, enabling Git to track changes in that folder.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Changes are staged and you need to record them

`git add` stages changes (moves them to the index) and `git commit -m "msg"` creates an immutable snapshot, forming the project history.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Want to develop a feature safely

Branches let you develop features in isolation; creating a new branch (`git checkout -b`), switching (`git switch`), and deleting (`git branch -d`) keep the main line stable.

GitHub ↗ Lesson → AI-generated
How-to Everyone

I need to share my work and get others’ updates

`git push` uploads your commits to the remote repository; `git pull` fetches new commits from the remote and merges them, keeping both sides up‑to‑date.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Want reviewers to check and combine your changes

A PR lets you request that a branch be merged into another; reviewers can comment, approve, or request changes before the final merge.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Want to add files to a repo without the command line

The web interface lets you quickly add single or small groups of files by dragging them into the repo view and committing directly, useful for non‑technical uploads.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Password alone isn’t safe

2FA adds a second verification step (e.g., an authenticator app) after entering your password, protecting against credential theft.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Need a personal landing page on your profile

A repository named exactly after your username is treated as a special repo; its README.md is rendered on your profile, allowing you to showcase projects and personality.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Need online code storage

A repository is where your project’s code lives in the cloud, allowing you to back up and share it. Creating one on GitHub gives you a public or private container for your files.

corbin ↗ Lesson → AI-generated
How-to Everyone

Want to experiment without breaking the main line

A branch copies the current state of the main line of development, letting you experiment safely. Changes stay isolated until you decide they’re ready.

corbin ↗ Lesson → AI-generated
How-to Everyone

Finished feature branch ready to go

A pull request (PR) shows the differences between a feature branch and main, lets you review changes, and then merges them when approved.

corbin ↗ Lesson → AI-generated
How-to Everyone

Want a copy of a public repository on your PC

Cloning copies the entire repository (including history) onto your computer so you can edit files locally with any IDE.

corbin ↗ Lesson → AI-generated
How-to Everyone

Local code changes aren’t showing up on the remote

A commit snapshots your modifications; pushing uploads that snapshot to the remote repository so others can see it.

corbin ↗ Lesson → AI-generated
How-to Everyone

Need to track changes locally

Downloading and installing Git adds the core version‑control engine to your computer, enabling you to track changes in any project folder.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Want to handle Git repos without typing commands

GitHub Desktop provides a visual interface for common Git actions, letting beginners commit, branch, and sync with GitHub by clicking instead of typing commands.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Need teammates to check my code before it goes live

A PR lets teammates examine, comment on, and approve your branch before it merges into the main line, ensuring quality control.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Need to start tracking my project files

Initializing a repository creates a hidden `.git` folder that stores all history, allowing you to take snapshots of your work.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Need to lock in a version of your files

A commit captures the current state of staged files along with a descriptive message, forming a point you can later revert to.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Your commits are only on your PC

Pushing sends local commits to the remote repository, creating a cloud backup and enabling collaboration.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Need to isolate changes for a new idea

Branches give you an isolated line of development; you can experiment without affecting the stable main branch.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Feature work lives on its own branch and you need it in main

Merging combines changes from one branch into another; fast‑forward or three‑way merges keep history intact.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Two branches edit the same lines causing a conflict

When two branches edit the same lines, Git flags a conflict; you must edit the file to keep the desired version and then commit the resolution.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Made a bad change and need to undo it

Reverting creates a new commit that inverses the selected one, preserving history while restoring previous state.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Need a local copy of an existing project

Cloning copies the full history of a remote repo to your local machine, giving you a complete, editable copy.

Mikey No Code ↗ Lesson → AI-generated
How-to Everyone

Need the course code on your computer

Using Git you can copy the remote course repo to your Mac, giving you all sample Dockerfiles and YAML files needed for hands‑on practice.

Bret Fisher ↗ Lesson → AI-generated
How-to Everyone

Need to track a new project folder

Running git init in a folder tells Git to start tracking that directory, creating a hidden .git folder where all version data is stored. This establishes the working directory, staging area, and local repository needed for version control.

How-to Everyone

Need a local copy of a remote codebase

git clone downloads an entire remote repo (including its history) and sets up the local working directory, automatically creating the .git folder and linking it to the remote origin.

Tip Everyone

git status — see what changed

git status compares the working directory, staging area, and last commit to list modified, added, deleted, or untracked files, giving a quick snapshot of project state.

How-to Everyone

Need to move selected changes into staging area

`git add --all` or `git add -A` stages every modification, addition, and deletion across the whole repo; `git add .` stages only changes in the current directory tree; `git add <file>` stages a single file. Choosing the right form controls what gets committed.

Tip Everyone

git reset — unstage or discard changes

`git reset` without options moves staged changes back to the working directory, leaving modifications untouched; `git reset --hard` resets both index and working tree to the last commit, discarding all local edits.

How-to Everyone

Want to lock in your staged edits

`git commit -m "message"` creates a new immutable snapshot of all staged changes, attaching author name/email (set via git config) and a message that describes the change.

Tip Everyone

git rm — delete a tracked file and stage the deletion

`git rm <file>` removes the file from the working tree and automatically stages its removal, so the next commit records the deletion. Use `-f` to force removal of modified files, or `--cached` to keep the file locally but stop tracking it.

Tip Everyone

git log — view commit history

`git log` prints a chronological list of commits with IDs, authors, dates, and messages; `--oneline` condenses each entry to one short line, making it easy to copy a commit hash for later operations.

Tip Everyone

git branch & checkout — create and switch branches

`git branch <name>` creates a new pointer to the current commit, giving an independent line of development. `git checkout <name>` moves HEAD to that branch, updating the working directory to reflect its snapshot.

Tip Everyone

git merge — combine changes from another branch

`git merge <branch>` integrates commits from the specified branch into the current one, creating a new merge commit if needed. If conflicting edits exist, Git flags them for manual resolution.

How-to Everyone

Having to enter your password every time you push

An SSH key links your computer to your GitHub account so you can push and pull without repeatedly entering credentials. The public part is added to GitHub, while the private part stays on your machine.

corbin ↗ Lesson → AI-generated
How-to Everyone

Want to grab a repo without password prompts

Cloning over SSH uses the authenticated key, avoiding password prompts and ensuring you have write access for pushes.

corbin ↗ Lesson → AI-generated
How-to Everyone

Folder of code with no version history

Running `git init` creates a hidden `.git` folder that tracks changes, allowing you to push the code to a remote repository later.

corbin ↗ Lesson → AI-generated
How-to Everyone

Need to get my new project onto the remote repo

A commit records a snapshot of your files; pushing sends that snapshot to the remote repository, establishing the project history.

corbin ↗ Lesson → AI-generated
How-to Everyone

Want to track each change as you work

Each commit captures a logical change, making it easy to track history and revert if needed.

corbin ↗ Lesson → AI-generated
How-to Everyone

Accidentally changed code and need the old version

Git’s commit hash acts as a checkpoint; resetting or reverting restores the repository to that state without losing history.

corbin ↗ Lesson → AI-generated
How-to Everyone

Need an isolated spot to develop a feature

Branches let you develop new functionality without affecting the stable main branch, enabling parallel work streams.

corbin ↗ Lesson → AI-generated
How-to Everyone

Need to merge a feature branch into main

A pull request (PR) shows differences between branches, allows code review, and safely merges changes after approval.

corbin ↗ Lesson → AI-generated
How-to Everyone

Merged a PR and need to delete its branch

Removing branches that have been merged keeps the repository tidy and prevents accidental work on outdated code.

corbin ↗ Lesson → AI-generated
How-to Everyone

Want Git on your Mac

Homebrew is a package manager for macOS that simplifies installing software. By running its installation script and then using `brew install git`, you get the latest Git version without manual downloads.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Want version control on a Windows PC

The official Git for Windows installer guides you through a wizard that sets up Git, adds it to your PATH, and configures default options like the main branch name.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Want every commit to show who I am

Git records who makes each commit. Setting `user.name` and `user.email` globally ensures every repository you create attributes changes to you.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Need to begin tracking files in a folder

`git init` creates a hidden `.git` folder that stores all version‑control data, turning any directory into a repository ready for commits.

GitHub ↗ Lesson → AI-generated
How-to Everyone

I want my edited files included in the next commit

`git add` moves files from the working directory into the staging area, marking them to be included in the next commit. Using `.` adds all modified files at once.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Want to save your current changes with a note

`git commit -m "message"` creates a new commit object that captures the current state of the staging area, attaching a descriptive message for future reference.

GitHub ↗ Lesson → AI-generated
How-to Everyone

`git status` reports which files are tracked, staged, or untracked, helping you understand what will be committed next.

GitHub ↗ Lesson → AI-generated
How-to Everyone

Multiple AI bots need separate code copies

Worktrees let each AI agent operate on its own copy of the repository, preventing file conflicts. By creating a separate worktree per issue, agents can modify code independently and later merge via pull requests.

Cole Medin ↗ Lesson → AI-generated
Tip Everyone

GitHub Account — create a free account

You sign up at github.com by providing email, password, username and selecting the free plan. This gives you an online identity for storing repositories.

Tip Everyone

GitHub Desktop — install and sign in

Download the desktop client from desktop.github.com, launch it, and authenticate with your GitHub credentials. The app then links locally stored repos to your online account.

Tip Everyone

Local Repository — initialize with README and .gitignore

In GitHub Desktop, choose File → New repository, give it a name, set a folder path, check “Initialize this repository with a README”, and select an appropriate .gitignore template (e.g., Swift). This creates a local repo ready for tracking files.

Tip Everyone

Publish Repository — push local repo to GitHub

After creating the local repo, click “Publish repository” in GitHub Desktop, choose privacy settings, add an optional description, and confirm. This creates a matching remote repo on github.com and uploads your initial commit.

Tip Everyone

Commit Changes — snapshot project state

Modify files, then in GitHub Desktop write a concise summary in the “Summary” box and click “Commit to main”. This records a new commit (snapshot) of all staged changes.

Tip Everyone

Discard Uncommitted Changes — revert to last commit instantly

If you have unsaved edits since the last commit, right‑click the changed file(s) in GitHub Desktop and choose “Discard changes”. This restores the files to their state at the previous commit.

Tip Everyone

Revert Past Commits — roll back multiple versions

Open the History tab, right‑click a past commit you want to undo, select “Revert changes in this commit”, then commit the generated revert. Repeat for each unwanted commit to step back further.

How-to Everyone

Need to track changes in a new folder

Running git init creates a .git folder that stores all history and metadata, turning any directory into a Git repository. This is the first step to track changes locally.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

Need to choose which edits go into the next snapshot

git add moves changes from the working directory into the staging area, letting you choose exactly which modifications become part of the next snapshot.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

Want to lock in your staged edits

git commit records a snapshot of everything in the staging area, attaching a message that describes the change. This forms an immutable point you can return to later.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

Need a separate line for new feature work

Branches let you work on isolated features or experiments without affecting the main code. `git branch <name>` creates the branch, while `git checkout <name>` moves your working directory onto it.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

I want to bring feature work into main

git merge combines the history of two branches, applying the differences from the source branch onto the target. This finalizes an experiment and brings its improvements into the main line.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

Link my local folder to an online repo

Adding a remote assigns a nickname (origin) to an online URL, allowing you to push and pull between your local repository and GitHub.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

Local commits don’t show up online

`git push origin main` sends your local branch’s commits to the remote named origin, updating the corresponding branch on GitHub so others can see and collaborate.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

Want the newest teammate updates in your repo

`git pull origin main` combines `git fetch` (download) and `git merge` (integrate), bringing remote updates into your local branch so you stay in sync with collaborators.

Tech With Diego ↗ Lesson → AI-generated
How-to Everyone

Want the full Open Notebook code on your machine

Cloning the repository copies all required files to your local machine, giving you a complete, version‑controlled copy of the open‑source project ready for configuration.

Tech Bytes Insights ↗ Lesson → AI-generated

The same set on /recipes, filtered by tool and role.

5Videos 4

6FAQ 5

How do I give my script limited access to a repo?

Create a personal access token (PAT) that only includes the scopes you need: Repository admin, Contents, and Pull requests. In GitHub settings, generate a new PAT with those permissions and use it in your script.

How can reviewers see my project without installing anything locally?

Push the code to a public GitHub repository and add a deployment link (e.g., Render, Vercel, Heroku). Reviewers can then open the repo online and click the live demo link to run the application in their browser.

What’s the basic git workflow to trigger an automated build on GitHub?

Stage all changed files, commit them with a message (for example, "final"), and push the commit to the target repository such as portfolio-website-tutorial. The push event starts the automated build defined in your workflow.

Do I need a credit card to create a free GitHub account?

No. You can sign up at github.com with just an email, username, and password, and you’ll immediately get a free account that can host repositories.

How do I add someone as a collaborator so they can edit my repository?

Go to Settings → Manage access in your repo, click Invite a collaborator, enter the person’s GitHub username, and assign them read/write or admin rights. They will then be able to push changes directly to the repository.

7Glossary 12 terms

Show the 12 terms
GitHub
personal access token
A secret string you create on GitHub that lets a script act like you when accessing repositories.
scopes
Specific permissions you assign to a personal access token, such as allowing it to edit code or manage pull requests.
deployment link
A web address (e.g., from Render, Vercel, Heroku) that runs your project online so others can view it without installing anything locally.
commit
Saving a set of changes to your local copy of the code with a short description.
push
Sending your committed changes from your computer up to the GitHub repository.
branch
A separate line of development in a repository where you can make changes without affecting the main code until you merge them.
pull request (PR)
A request on GitHub to review and possibly merge changes from one branch into another.
.github/workflows/
A folder inside a repository where you place YAML files that define automated actions like testing or building code.
YAML
A simple text format used to write configuration files, such as the workflow definitions for GitHub Actions.
Actions tab
The page in a GitHub repository that shows the history and details of automated workflows that have run.
echo command
A line you add to a workflow that prints a custom message into the log so you can confirm the step ran.
MIT license
An open‑source legal notice that lets anyone use, modify, and share the code freely with minimal restrictions.

8See also

💬 Discuss this chapter

Ask, share, or report — over on the Heidelberg AI community forum.