Pertemuan Pertemuan 32

Proyek Akhir Bagian 2: Review, Hotfix, Release & Ujian Akhir

Pertemuan 32 / 32
Capstone Modul capstone 60 menit
Pertemuan 32

Proyek Akhir Bagian 2: Review, Hotfix, Release & Ujian Akhir

Tujuan Pembelajaran

  • Mampu melakukan simulasi hotfix workflow
  • Mampu membuat release dan tag di GitHub
  • Mendemonstrasikan penguasaan seluruh materi Git & GitHub

Review Proyek Bagian 1

Pastikan dari pertemuan 31, kamu sudah menyelesaikan:

  • Repository dengan README, .gitignore, dan struktur rapi
  • Feature development menggunakan GitHub Flow (about page, projects page)
  • Pre-commit hook untuk code quality
  • CI/CD pipeline dengan GitHub Actions
  • Push ke GitHub dengan tag v1.0.0

Tahap 6: Simulasi Hotfix (10 menit)

Skenario: Bug ditemukan di production! Halaman utama tidak memiliki navigasi yang lengkap. Kita perlu membuat hotfix segera.

# Pastikan di branch main dan up-to-date
git switch main
git pull origin main

# Buat branch hotfix
git switch -c hotfix/fix-navigation

# Perbaiki index.html: tambah navigasi yang hilang
# Edit index.html untuk menambahkan link navigasi yang lebih lengkap
cat > index.html << 'EOF'
<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Portfolio</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header>
        <h1>Portfolio Saya</h1>
        <nav>
            <a href="index.html">Home</a>
            <a href="about.html">About</a>
            <a href="projects.html">Projects</a>
        </nav>
    </header>
    <main>
        <p>Selamat datang di portfolio saya.</p>
        <p>Gunakan navigasi di atas untuk menjelajahi website ini.</p>
    </main>
    <footer>
        <p>Copyright 2024 - Dibuat sebagai proyek akhir Git & GitHub</p>
    </footer>
</body>
</html>
EOF

git add . && git commit -m "fix: tambah navigasi dan footer yang hilang di halaman utama"

# Merge hotfix ke main
git switch main
git merge hotfix/fix-navigation
git branch -d hotfix/fix-navigation

# Tag patch release
git tag -a v1.0.1 -m "Hotfix v1.0.1: Perbaiki navigasi dan tambah footer"

# Push ke remote
git push origin main --tags

Poin penting hotfix workflow:

  • Hotfix selalu dibranch dari main (bukan develop atau feature)
  • Penamaan: hotfix/deskripsi-singkat
  • Merge kembali ke main dan juga ke develop (jika menggunakan Git Flow)
  • Buat patch tag (v1.0.x) untuk setiap hotfix

Tahap 7: Release v1.1.0 (5 menit)

Setelah hotfix, buat release resmi di GitHub.

# Buat release di GitHub (via browser):
# 1. Buka repository di GitHub
# 2. Klik tab "Releases" di sidebar kanan
# 3. Klik "Create a new release"
# 4. Pilih tag: v1.0.1 (atau buat tag baru)
# 5. Release title: "v1.0.1 - Hotfix Navigasi"
# 6. Description / changelog:
#
#    ## Changelog
#
#    ### Bug Fixes
#    - Perbaiki navigasi yang hilang di halaman utama
#    - Tambah footer di semua halaman
#
#    ### Full Changelog
#    v1.0.0...v1.0.1
#
# 7. Klik "Publish release"

# Atau menggunakan GitHub CLI:
# gh release create v1.0.1 \
#   --title "v1.0.1 - Hotfix Navigasi" \
#   --notes "## Bug Fixes
# - Perbaiki navigasi yang hilang di halaman utama
# - Tambah footer di semua halaman"

Verifikasi akhir project:

# Cek semua tag
git tag -l

# Cek history lengkap
git log --oneline --graph --all --decorate

# Cek status bersih
git status
# Seharusnya: nothing to commit, working tree clean

# Cek remote up-to-date
git push origin main --tags

Ringkasan Proyek Akhir

Dalam proyek ini kamu telah mempraktikkan:

SkillDiterapkan di
git init, add, commitTahap 1: Setup
Feature branching (GitHub Flow)Tahap 2: Feature Dev
git merge, branch -dTahap 2: Merge features
git tagTahap 2: v1.0.0, Tahap 6: v1.0.1
Git hooks (pre-commit)Tahap 3: Code quality
GitHub Actions CI/CDTahap 4: Automation
git remote, pushTahap 5: Push to GitHub
Pull RequestTahap 5: PR workflow
Hotfix branchTahap 6: Emergency fix
GitHub ReleasesTahap 7: Release management
.gitignore, READMESepanjang project
Conventional CommitsSemua pesan commit

Ujian Akhir (25 soal, 25 menit)

Ujian akhir mencakup seluruh materi dari pertemuan 1-30. Pastikan kamu memahami konsep dasar hingga advanced sebelum mengerjakan.

Cakupan ujian:

  • Basic (Pertemuan 1-11): Version control, 3 area kerja, commit, branching, remote, GitHub, Fork, PR
  • Intermediate (Pertemuan 12-22): Branch management, merge strategies, stash, tag, PR review, GitHub Actions dasar
  • Advanced (Pertemuan 23-30): Rebase, reflog, reset, revert, bisect, cherry-pick, hooks, CI/CD, internals, security

Format: 25 soal pilihan ganda, passing grade 70% (minimal 18 benar dari 25 soal).

Tips mengerjakan ujian:

  • Baca setiap soal dengan teliti
  • Perhatikan kata kunci: β€œPALING”, β€œPERTAMA”, β€œTIDAK”
  • Jika ragu, eliminasi jawaban yang jelas salah
  • Manajemen waktu: rata-rata 1 menit per soal

Penutupan Course

Selamat! Kamu telah menyelesaikan seluruh 32 pertemuan course Git dan GitHub.

Ringkasan apa yang sudah dipelajari:

  • Basic (Pertemuan 1-11): Version control, Git workflow, GitHub, remote repository, kolaborasi dasar, Fork, Pull Request, Markdown, README, GitHub Pages
  • Intermediate (Pertemuan 12-22): Branch management, merge vs rebase, merge conflicts, stash, tag, semantic versioning, Pull Request review, GitHub Actions dasar, kolaborasi tim
  • Advanced (Pertemuan 23-30): Interactive rebase, reflog, reset, revert, bisect, cherry-pick, Git hooks, Husky, CI/CD pipeline, submodules, worktrees, LFS, Git internals, security best practices
  • Capstone (Pertemuan 31-32): End-to-end open source workflow, proyek portfolio lengkap

Langkah selanjutnya untuk terus berkembang:

  1. Kontribusi ke open source β€” cari project dengan label good first issue di GitHub
  2. Terapkan di kehidupan nyata β€” gunakan Git di project kerja, kuliah, atau personal
  3. Pelajari lebih lanjut: monorepo management, advanced GitHub Actions, GitHub CLI (gh), Git hooks automation
  4. Referensi lanjutan: Pro Git Book β€” gratis dan lengkap

Tugas Mandiri (Akhir)

  1. Pastikan proyek akhir sudah lengkap di GitHub dengan semua tahap (1-7) selesai
  2. Verifikasi: CI pipeline berjalan, tag dan release ada, PR dibuat
  3. Tulis refleksi singkat di README: apa yang paling kamu pelajari dari course ini
  4. Bagikan link repository proyek akhir kamu

Quiz: Ujian Akhir

Jawab 25 pertanyaan berikut untuk menguji pemahaman kamu.

Soal 1 dari 25

Perintah untuk melihat semua branch baik lokal maupun remote adalah...