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?
Dev Days 2026 · Dhaka, Bangladesh
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.
Before take-off
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.
Stop 01
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?
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
Version-control software on your computer. Records history locally and works offline.
Hosts repositories and adds issues, pull requests, reviews and automation for collaboration.
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
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
Use the git-basics folder. It contains one file, notes.md. Run these commands inside that folder — never inside an important project.
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.
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.
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
git switch -c improve-notesgit 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
Read git status. Stage only the files you intend to share.
Check for API keys, passwords, personal data, licences and repository visibility.
Revoke or rotate it. Deleting the line in a later commit does not remove it from history.
Stop 07
The current Dev Days round focuses on the GitHub Copilot app and Copilot CLI. The workflow matters more than the tool you start with.
“Fix everything and make it better.”
“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
Open copilot-demo. prime.py contains an intentional bug, and test_prime.py catches it.
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)
test_four ... ok test_negative ... ok test_nine ... ok test_one ... ok test_three ... ok test_twenty_five ... ok test_two ... ok test_zero ... ok Ran 8 tests · OK
Recorded by running the starter and the reference fix with Python 3.10.
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.
range() excludes its end?is_prime?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
Open copilot-demo/index.html — a small learning-goals list. Ask Copilot to add a case-insensitive filter without breaking anything that already works.
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.
The starter you will give to Copilot.
Stop 10
A green check is helpful, not proof. Tick these off for every AI-assisted change.
0 of 5 checked
Landing
One language, Git, debugging and clear technical writing.
One small project with a README, tests and honest limitations.
Help a teammate, or make one useful contribution that follows the project’s guidelines.
What is in this repository
git-basics/Practice folder for your first commitscopilot-demo/Buggy prime.py, its tests, and the learning-goals appfallback-solutions/Hand-written reference answers — try Copilot firstYour-First-AI-Teammate-DevDays-Solo.pptxThe session slides