GitHub Copilot Dev Days · Dhaka

Dev Days 2026 · Dhaka, Bangladesh

Git. GitHub.
Your first AI teammate.

Fly over a city built from commits, then walk through the whole session at your own pace — version control, pull requests and two hands-on GitHub Copilot demos.

Decorative animation: a drone camera flies over a 3D city where each tower is a commit. A green main street and a purple feature branch merge through a pull request.

Missed part of the session, or want to try it yourself? Everything planned for the talk is here — including the Copilot demos we did not have time to run live.

  • 9stops on the route
  • 2Copilot demos
  • 3practice folders

Before take-off

The route in one picture

Each stop builds on the last. By the end you can track a change, propose it for review, and ask Copilot for help without giving up responsibility for the result.

  1. 01Track changes
  2. 02Work together
  3. 03Direct the AI
  4. 04Review & own it

Stop 01

The “final-final-v3” problem

Without version control

project-final/
project-final-new/
project-really-final/
project-really-final-v3/

Which folder is current? Which change fixed the bug — and who made it?

With version control

  • Named checkpoints with messages
  • Exact differences between versions
  • Parallel lines of work
  • A history you can explain

Git is not a magic backup. If the only copy lives on your laptop and the laptop is lost, so is the history. A remote copy is a separate decision.

Stop 02

Git is not GitHub — and neither is Copilot

Tool

Git

Version-control software on your computer. Records history locally and works offline.

Platform

GitHub

Hosts repositories and adds issues, pull requests, reviews and automation for collaboration.

Assistant

GitHub Copilot

AI help inside the workflow. Its suggestions and actions still need your review.

Saving in the editor, committing in Git, pushing to GitHub and deploying a website are four different steps.

Stop 03

Save ≠ stage ≠ commit

Working filesEdit and save in your editor.
Staging areaChoose the exact change to record.
Commit historyA checkpoint with a message.

git diff compares working files ↔ staging.

git diff --staged compares staging ↔ last commit.

After git add, plain git diff can look empty. Your change did not disappear — it moved to staging.

Stop 04 · Try it

Your first two checkpoints

Use the git-basics folder. It contains one file, notes.md. Run these commands inside that folder — never inside an important project.

1Start tracking

git init -b main
git status
git add notes.md
git diff --staged
git commit -m "Add learning goals"

If Git asks who you are, set your name and email once with git config --global user.name and user.email.

2Make and inspect a change

Add a new line to notes.md in your editor, for example - Build one small project., and save.

git diff
git add notes.md
git diff --staged
git commit -m "Add a practice goal"

Predict what the diff will show before you run it. A plus sign marks an added line.

3Read the story

git log --oneline -3
git show HEAD:notes.md
git status

Example output — your commit IDs will differ

7172ba7 Add a practice goal
3fcbeec Add learning goals

Stop 05

From a branch to a reviewed change

Branch and merge diagram Commits A and B on main. A feature branch improve-notes adds commit F, which is reviewed in a pull request and merged into main as commit C. A B F C main improve-notes pull request · review
  1. IssueDescribe the problem and what “done” means.
  2. Branch + commitsMake small, understandable changes. git switch -c improve-notes
  3. Pull requestPropose the change. Reviewers read the diff and check the evidence.
  4. MergeIntegrate reviewed work. Opening a PR never obliges anyone to merge it.
Remote commands in one line each
  • git clone <url> — make a local copy of a remote repository.
  • git fetch — download updates without changing your branch.
  • git pull — fetch and integrate updates (merge or rebase, depending on configuration).
  • git push — send your commits to a remote you have permission to write to.

Stop 06

Share code, not secrets

Before adding

Read git status. Stage only the files you intend to share.

Before publishing

Check for API keys, passwords, personal data, licences and repository visibility.

If a secret leaks

Revoke or rotate it. Deleting the line in a later commit does not remove it from history.

Stop 07

Meet your AI teammate

The current Dev Days round focuses on the GitHub Copilot app and Copilot CLI. The workflow matters more than the tool you start with.

  1. PlanGive context, constraints and a clear task.
  2. BuildInspect proposed edits and tool actions.
  3. ReviewRead the diff and the real test results.
  4. ShipMerge or publish only with deliberate approval.
Vague

“Fix everything and make it better.”

Bounded

“Explain the bug first. Change only the relevant function. Keep the interface. Run the named tests and show the actual result.”

Copilot Free and Copilot Student currently use Auto model selection, and usage draws on a monthly allowance. Check your own plan before a workshop.

Stop 08 · Copilot demo 1

Explain, test, fix: why is 4 “prime”?

Open copilot-demo. prime.py contains an intentional bug, and test_prime.py catches it.

1 · Reproduce the failure

python -m unittest -v test_prime.py
test_four ... FAIL
test_negative ... ok
test_nine ... ok
test_one ... ok
test_three ... ok
test_twenty_five ... ok
test_two ... ok
test_zero ... ok

AssertionError: True is not false
Ran 8 tests · FAILED (failures=1)

Recorded by running the starter and the reference fix with Python 3.10.

2 · Ask Copilot — explanation first

Prompt

Explain this Python function in simple terms. Do not edit yet. Why does is_prime(4) return True? Suggest a minimal fix and tests covering negative numbers, 0, 1, primes and perfect squares. After I approve the edit, run the tests and show the actual output. If you cannot run them, say so.

3 · Approve a small change, then re-run the tests

  • Does the explanation mention that range() excludes its end?
  • Did it change only is_prime?
  • Did the tests actually run — or did it just say they “should pass”?
Stuck? See a reference fix (hand-written, not Copilot output)
from math import isqrt

def is_prime(n):
    if n < 2:
        return False
    for divisor in range(2, isqrt(n) + 1):
        if n % divisor == 0:
            return False
    return True

Stop 09 · Copilot demo 2

One scoped improvement: add a filter

Open copilot-demo/index.html — a small learning-goals list. Ask Copilot to add a case-insensitive filter without breaking anything that already works.

Prompt

In the existing index.html, add a labelled case-insensitive text filter for the learning-goals list. Preserve adding a goal, ignore blank submissions, keep keyboard access, and show a clear no-results message. Treat user input as text, not HTML. Do not install dependencies, add network calls or change unrelated files. First explain your plan; then implement the scoped change. Show the diff and a manual test checklist. Only claim checks passed if you actually ran them.

Acceptance checks

  • “git” shows matching goals
  • “GIT” shows the same matches
  • “zzzz” shows a no-results message
  • Clearing the filter shows every goal
  • Adding a matching goal while filtering keeps it visible

Try it here

The starter you will give to Copilot.

    Stop 10

    Before you accept the change

    A green check is helpful, not proof. Tick these off for every AI-assisted change.

    0 of 5 checked

    Landing

    Your next 30 days

    Learn

    One language, Git, debugging and clear technical writing.

    Build

    One small project with a README, tests and honest limitations.

    Contribute

    Help a teammate, or make one useful contribution that follows the project’s guidelines.

    What is in this repository

    Repository map