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)
git config --global user.name "Nama Kamu"
git config --global user.email "emailkamu@gmail.com"Cek hasilnya:
git config --list3. Buat Repository di GitHub (PM / Lead)
Yang melakukan ini: Project Manager atau Lead Developer
- Buka
github.com→ Login - Klik tombol New repository
- Isi:
- Repository name:
magang-crud-student - Description:
Mini project CRUD Student - Program Magang SMK - Public ✅
- Jangan centang "Add README"
- Repository name:
- Klik Create repository
4. Push Project ke GitHub
Di laptop PM/Lead, dari folder project Laravel:
# 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 main5. Clone Repository (Anggota Lain)
Setiap anggota lain clone (bukan download ZIP!) repository ke laptop masing-masing:
git clone https://github.com/[username]/magang-crud-student.git
cd magang-crud-studentSetelah clone, setup environment lokal:
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 lokal6. Workflow Branching Harian
Aturan WAJIB: Tidak ada yang boleh langsung commit ke branch main!
Setiap fitur/tugas dibuat di branch baru:
# 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-asal7. Task Hari Ini Per Anggota
Setiap anggota membuat branch sendiri dengan nama feature/nama-fitur dan menambahkan perubahan kecil:
| Role | Branch | Tugas |
|---|---|---|
| Project Manager | feature/readme | Tulis file README.md yang menjelaskan project |
| Backend Dev | feature/validasi-duplikat | Tambahkan validasi di store(): nama tidak boleh duplikat |
| Frontend Dev | feature/styling-table | Perbaiki tampilan tabel dengan row warna bergantian |
| QA Tester | feature/tambah-pagination | Tambahkan ->paginate(10) dan Blade directive links() di view |
8. Pahami Perintah Git Penting
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 pushmeminta username/password → GitHub sudah tidak mendukung password. Gunakan Personal Access Token (buka Settings GitHub → Developer settings → Personal access tokens)..envter-push ke GitHub → Langsung hapus dengangit rm --cached .envdan re-push. Tambahkan.envke.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.