Skip to content

Day 9 — Git & GitHub: Branching & Kolaborasi Tim

Fase: 1 — Fundamental Laravel | Minggu: 2 | Hari: Kamis


🎯 Tujuan Hari Ini

Peserta mampu menggunakan Git untuk version control dan berkolaborasi dengan anggota tim melalui GitHub menggunakan konsep branching.


📋 Task Wajib

1. Mengapa Git Penting?

Tanpa Git, kolaborasi akan seperti ini:

"Eh, coba kirimin file-nya via WhatsApp ya..." "Yang mana? Yang tadi pagi atau yang baru?" "Aduh, dua-duanya ada perubahan!"

Dengan Git, setiap perubahan tercatat siapa yang mengubah, kapan, dan apa yang diubah. Tidak ada lagi chaos!

2. Konfigurasi Git Awal (Sekali Saja per Laptop)

bash
git config --global user.name "Nama Kamu"
git config --global user.email "emailkamu@gmail.com"

Cek hasilnya:

bash
git config --list

3. Buat Repository di GitHub (PM / Lead)

Yang melakukan ini: Project Manager atau Lead Developer

  1. Buka github.com → Login
  2. Klik tombol New repository
  3. Isi:
    • Repository name: magang-crud-student
    • Description: Mini project CRUD Student - Program Magang SMK
    • Public ✅
    • Jangan centang "Add README"
  4. Klik Create repository

4. Push Project ke GitHub

Di laptop PM/Lead, dari folder project Laravel:

bash
# Inisialisasi Git di project
git init

# Buat file .gitignore (Laravel sudah menyediakan ini)
# Pastikan file .env ada di .gitignore!

# Tambahkan semua file
git add .

# Commit pertama
git commit -m "feat: initial Laravel project with Student CRUD"

# Hubungkan ke repository GitHub
git remote add origin https://github.com/[username]/magang-crud-student.git

# Push ke branch utama
git branch -M main
git push -u origin main

5. Clone Repository (Anggota Lain)

Setiap anggota lain clone (bukan download ZIP!) repository ke laptop masing-masing:

bash
git clone https://github.com/[username]/magang-crud-student.git
cd magang-crud-student

Setelah clone, setup environment lokal:

bash
cp .env.example .env        # Salin file .env
php artisan key:generate    # Generate app key
composer install            # Install dependencies
php artisan migrate         # Buat tabel di DB lokal

6. Workflow Branching Harian

Aturan WAJIB: Tidak ada yang boleh langsung commit ke branch main!

Setiap fitur/tugas dibuat di branch baru:

bash
# Lihat branch yang ada
git branch

# Buat branch baru dan langsung pindah ke sana
git checkout -b feature/tambah-sekolah-asal

# Mulai coding...
# Setelah selesai:
git add .
git commit -m "feat: menambahkan kolom sekolah_asal di form student"

# Push branch ke GitHub
git push origin feature/tambah-sekolah-asal

7. Task Hari Ini Per Anggota

Setiap anggota membuat branch sendiri dengan nama feature/nama-fitur dan menambahkan perubahan kecil:

RoleBranchTugas
Project Managerfeature/readmeTulis file README.md yang menjelaskan project
Backend Devfeature/validasi-duplikatTambahkan validasi di store(): nama tidak boleh duplikat
Frontend Devfeature/styling-tablePerbaiki tampilan tabel dengan row warna bergantian
QA Testerfeature/tambah-paginationTambahkan ->paginate(10) dan Blade directive links() di view

8. Pahami Perintah Git Penting

bash
git status              # Lihat file mana yang berubah
git log --oneline       # Lihat riwayat commit
git diff                # Lihat detail perubahan
git pull origin main    # Ambil perubahan terbaru dari GitHub
git push origin [nama-branch]  # Upload branch ke GitHub

📝 Laporan ke Mentor

📌 LAPORAN HARIAN — Day 9
Nama     : [Nama Lengkap]
Role     : [Role Kamu]

✅ Yang saya kerjakan hari ini:
- [ ] Konfigurasi git config user.name dan user.email
- [ ] Berhasil clone repository dari GitHub
- [ ] Setup .env dan composer install di clone baru
- [ ] Membuat branch feature/[nama-fitur-saya]
- [ ] Commit dan push branch ke GitHub

📸 Screenshot Wajib:
1. GitHub repositori menampilkan semua branch dari tiap anggota
2. Terminal dengan git log --oneline menampilkan min. 2 commit
3. Halaman branch GitHub yang menunjukkan branch tiap anggota

🔗 Link GitHub Repository: [isi URL repositori GitHub kalian]

❓ Kendala:
[Tulis jika ada, khususnya tentang permission / authentication GitHub]

⚠️ Masalah Umum Git di Day 9

  • git push meminta username/password → GitHub sudah tidak mendukung password. Gunakan Personal Access Token (buka Settings GitHub → Developer settings → Personal access tokens).
  • .env ter-push ke GitHub → Langsung hapus dengan git rm --cached .env dan re-push. Tambahkan .env ke .gitignore.
  • Tidak bisa clone karena private repo → Pastikan repositori diset ke Public, atau tambahkan email anggota tim sebagai Collaborator.

Catatan Mentor

Sangat penting: tegaskan bahwa push ke main tanpa review adalah pelanggaran aturan tim. Besok (Day 10) kita akan simulasi konflik merge. Itu akan membuktikan betapa pentingnya branching.

Program Magang SMK RPL — Rekayasa Perangkat Lunak