Konsep dasar version control & mengapa penting
init, clone, add, commit, push, pull, branch, merge
Strategi branch per kelompok, feature branch
Cara submit tugas via PR di GitHub
Merge conflict, cara baca dan resolve
Setup repo, clone starter kit, submit PR
Git adalah sistem version control terdistribusi yang mencatat setiap perubahan pada file sehingga banyak orang bisa bekerja di proyek yang sama secara bersamaan tanpa saling menimpa pekerjaan satu sama lain.
Setiap commit = foto kondisi seluruh project di waktu tersebut. Bisa kembali ke mana saja.
Setiap anggota punya salinan penuh riwayat. Tidak bergantung pada satu server pusat.
Kerjakan fitur di branch terpisah, lalu gabungkan ke branch utama tanpa risiko merusak.
| Aspek | ❌ Tanpa Git | ✅ Dengan Git |
|---|---|---|
| Kolaborasi | Kirim file via WhatsApp, saling tindih | Push ke repo, merge via PR |
| Riwayat perubahan | index_v1.html, index_v2_fix.html… | git log — riwayat lengkap dengan pesan |
| Rollback | Tidak bisa, file sudah ditimpa | git checkout <commit> kapan saja |
| Paralelisme | Harus menunggu giliran mengerjakan | Tiap orang kerja di branch sendiri |
| Review kode | Tidak ada mekanisme formal | Pull Request + komentar per baris |
Folder di komputer kamu. Tempat kamu mengedit file secara langsung. Perubahan di sini belum "diketahui" Git.
Area "antrian" sebelum commit. Kamu memilih file mana yang akan masuk ke snapshot berikutnya.
Database permanen Git. Setelah commit, snapshot tersimpan di sini dan tidak hilang.
edit file → git add → git commit → git push
Setiap kelompok kerja di branch group-XX. Jangan pernah push langsung ke main.
Hanya edit file di folder groups/group-XX/. File lain adalah tanggung jawab dosen.
<type>(scope): deskripsi singkat
| Type | Digunakan untuk |
|---|---|
feat | Menambah fitur baru |
fix | Memperbaiki bug |
docs | Mengubah dokumentasi |
style | Format/CSS (bukan logika) |
chore | Maintenance, update aset |
Bayangkan melengkapi kalimat: "Jika commit ini diterapkan, ia akan ____"
git clone https://github.com/if-untan/web-tugas-kelompok.git — lalu masuk ke folder project
git checkout -b group-02 — satu branch per kelompok, jangan share branch
Edit groups/group-02/index.html, kemudian git add . && git commit -m "feat(group-02): …"
git push origin group-02 — lalu buka GitHub, klik "Compare & pull request"
Sebutkan nama kelompok, anggota, dan ringkasan halaman yang dibuat. Dosen akan review & merge.
Conflict terjadi ketika dua orang mengubah baris yang sama di file yang sama secara bersamaan.
Git tidak tahu mana yang benar — kamu yang memutuskan.
Cari tanda <<<<<<< di editor
Hapus marker conflict, tulis versi final yang disepakati
git add . && git commit -m "fix: resolve conflict"
Tiap kelompok hanya edit folder group-XX-nya sendiri → conflict tidak mungkin terjadi.
Memberitahu Git file apa yang tidak perlu dilacak — biasanya file besar, file generated, atau file rahasia.
*.log — abaikan semua file .logfolder/ — abaikan seluruh folder!penting.log — pengecualian (tetap track)# — baris komentarMenambahkan ke .gitignore tidak menghapusnya dari riwayat. Gunakan git rm --cached nama-file lalu commit.
github.com/github/gitignore — template untuk berbagai bahasa & framework
git-scm.com/downloads — cek dengan git --version
git config --global user.name "Nama"git config --global user.email "email@untan.ac.id"
Buka github.com, buat akun dengan email kampus
Link repo akan dibagikan dosen — gunakan git clone <url>
| Perintah | Fungsi |
|---|---|
git clone <url> | Unduh repo dari GitHub |
git status | Lihat file yang berubah |
git add . | Staging semua perubahan |
git commit -m "…" | Simpan snapshot |
git push origin <branch> | Kirim ke GitHub |
git pull origin main | Update dari remote |
| Perintah | Fungsi |
|---|---|
git checkout -b <nama> | Buat & pindah branch |
git branch | Lihat daftar branch |
git log --oneline | Riwayat commit ringkas |
git diff | Lihat perbedaan belum di-stage |
git stash | Simpan sementara perubahan |
git restore <file> | Batalkan perubahan file |
groups/group-XX/index.html dalam area #assignment-body| Aspek | Bobot |
|---|---|
| Kualitas konten HTML | 40% |
| Commit message yang baik | 20% |
| Jumlah commit (≥ 3) | 20% |
| PR description lengkap | 20% |
PR harus disubmit sebelum pertemuan berikutnya. Late submission tidak diterima.