Panduan lengkap untuk mengendalikan sesi pembelajaran Git dan GitHub selama 2-3 jam. Termasuk demo script, analogi, pecahan command, dan tips fasilitasi.
Aliran sesi langkah demi langkah — dari konsep Git hingga kolaborasi dengan Pull Request.
Git sebagai sistem kawalan versi. GitHub sebagai platform awan. Analogi "save points" dan "time machine".
git init, git add, git commit. Demo langsung bersama pelajar buat repo pertama.
Cipta repo di GitHub. git remote add, git push. Lihat hasil online.
Q&A pantas. Semak pelajar yang tertinggal.
Konsep branch sebagai "dunia selari". git branch, git checkout, git merge.
Fork, clone, buat PR, review, merge. Demo pasangan.
Cara guna GitHub MCP plugin untuk semak PR, buat isu, dan kolaborasi.
Soalan, cabaran, perbincangan terbuka.
Script demonstrasi langsung — tunjuk sambil pelajar ikut.
Pelajar buat repo git pertama, tambah fail, dan buat commit.
git init — cipta folder .git (database repo). git add — stage perubahan. git commit — simpan snapshot ke sejarah.
git status setiap kali lepas add dan commit. Biasakan mereka tengok status — ini tabiat paling penting dalam Git.Pelajar cipta repo di GitHub dan push kod tempatan ke remote.
git remote add atau tersalah URL. Ajar mereka guna git remote -v untuk semak remote yang dah ada.Pelajar faham konsep branch — kerja dalam "dunia selari" tanpa ganggu branch utama.
Pelajar buat pull request di GitHub dan merge melalui interface web.
Tunjukkan bagaimana Claude Code boleh berintegrasi dengan GitHub melalui MCP.
MCP membolehkan Claude baca kod dalam PR, bagi komen automatik, dan urus isu tanpa perlu buka GitHub — terus dari terminal!
Script demonstrasi penuh dengan apa yang pengajar cakap dan taip — sesuai untuk pengajar yang mahu panduan terperinci.
Analogi dan pendekatan untuk memudahkan pemahaman konsep abstrak Git.
"Bayangkan korang main game macam Zelda atau GTA. Dalam game, korang boleh simpan progress — lepas tu kalau mati, boleh load balik. Git adalah macam tu juga, tapi untuk kod."
"Git macam korang tulis buku. Setiap commit adalah satu draf yang korang simpan. Branch adalah versi alternatif — maybe korang nak cuba ending berbeza tanpa rosakkan draf utama."
"Git adalah mesin masa untuk folder projek korang. Setiap commit adalah satu 'masa' yang korang rekodkan. Bila-bila masa korang boleh:
git diff)git checkout)GitHub pulak adalah mesin masa di awan — korang boleh access sejarah dari mana-mana komputer, dan orang lain pun boleh tengok."
Setiap command penting — apa dia buat, bila guna, dan contoh.
| Command | Apa Dia Buat | Bila Guna | Contoh |
|---|---|---|---|
git init |
Cipta repo git baru dalam folder | Mula projek baru | git init |
git add |
Stage perubahan untuk commit | Lepas edit fail | git add index.html |
git commit |
Simpan snapshot perubahan | Lepas add — simpan rekod | git commit -m "mesej" |
git status |
Tunjuk keadaan semasa repo | Nak tahu apa berubah | git status |
git log |
Tunjuk sejarah commit | Semak sejarah | git log --oneline |
git push |
Hantar commit ke remote | Nak sync ke GitHub | git push origin main |
git pull |
Ambil perubahan dari remote | Nak update repo tempatan | git pull origin main |
git clone |
Salin repo dari GitHub | Nak dapatkan repo orang lain | git clone <url> |
git branch |
Urus branch (senarai/cipta/padam) | Nak buat branch baru | git branch feature-x |
git checkout |
Tukar branch atau restore fail | Nak tukar branch | git checkout main |
git merge |
Gabungkan branch lain ke branch semasa | Lepas siap feature | git merge feature-x |
git diff |
Tunjuk perubahan yang belum stage | Sebelum add — semak apa berubah | git diff |
git remote |
Sambung/urus remote repo | Setup GitHub remote | git remote add origin <url> |
git stash |
Simpan sementara perubahan belum siap | Nak tukar branch tapi ada kerja separuh | git stash |
git fetch |
Ambil info remote tanpa merge | Nak check status remote dulu | git fetch origin |
Panduan mengendalikan kelas — dari persediaan hingga penyelesaian masalah.
| Kesilapan | Simptom | Penyelesaian |
|---|---|---|
Lupa git add |
Commit tak termasuk fail yang diedit | git add . → git commit --amend |
| Commit dengan mesej kosong/teruk | commit -m tanpa mesej bermakna | git commit --amend -m "mesej baru" |
| Edit dalam branch salah | Nampak perubahan padahal nak guna branch lain | git stash → checkout branch betul → git stash pop |
| Conflict merge | Git cakap "merge conflict" | Buka fail → cari <<< === >>> → manual resolve |
| Push rejected | Remote ada commit baru yang tempatan tak ada | git pull dulu → resolve conflict → git push |
| Tersalah delete branch | Branch dah takde | git reflog → cari commit terakhir → git branch fix |
| Git tak kenal user | "Please tell me who you are" | git config --global user.name "Nama" dan user.email |
Terlupa guna -u masa push pertama |
"fatal: The current branch has no upstream" | git push -u origin nama-branch |
git --version)git status — beritahu apa dia nampakgit log --oneline --graph — tunjuk visual branchgit reflog untuk cari di mana mereka beradaSoalan untuk menguji kefahaman dan merumus sesi.