kodingup.camp

Beranda/Bekal Wajib: Cara Kerja Web, Tools, Git & Cara Belajar

Git Dasar

Modul 5 dari 95 menit bacaGit Basics

Isi modul

    Kenapa ini penting

    Pernah punya file bernama tugas-final.docx, tugas-final-revisi.docx, tugas-final-revisi-BENERAN.docx? Itulah version control versi manual, dan hasilnya kacau. Version control adalah sistem yang mencatat setiap perubahan file dari waktu ke waktu, sehingga kamu bisa melihat siapa mengubah apa dan kapan, kembali ke versi sebelumnya kalau ada yang rusak, dan bekerja bersama orang lain tanpa saling menimpa. Git adalah version control paling populer di dunia dan standar industri web. Hampir semua lowongan developer mencantumkan Git. Analogi terbaiknya: Git adalah tombol "save game" untuk kode. Setiap commit adalah titik simpan yang bisa kamu kunjungi lagi kapan saja.

    Konsep inti

    Git vs GitHub

    Git adalah program yang berjalan di komputermu dan menyimpan riwayat di folder tersembunyi .git. GitHub (juga GitLab, Bitbucket) adalah situs yang menyimpan salinan repository di internet dan menambahkan fitur kolaborasi. Git bisa dipakai tanpa GitHub; GitHub tidak berguna tanpa Git. Modul ini fokus ke Git lokal, GitHub dibahas di modul 7.

    Memasang dan mengatur Git

    Rilis terbaru di git-scm.com saat materi ini ditulis adalah Git 2.56.0. Versi bawaan sistem bisa sedikit lebih lama (contoh: macOS dengan Command Line Tools memberikan 2.54), dan itu tidak masalah untuk semua materi di sini.

    Setelah terpasang, kenalkan dirimu ke Git (cukup sekali per komputer):

    git config --global user.name "Budi Santoso"
    git config --global user.email "budi@contoh.id"
    git config --global init.defaultBranch main
    

    Baris ketiga penting: dokumentasi resmi Git menyebut nama branch awal default saat ini masih master dan akan berubah menjadi main di Git 3.0. GitHub sudah memakai main, jadi lebih baik samakan sejak awal.

    Tiga area Git

    Area Isi Analogi
    Working directory File yang sedang kamu edit Meja kerja
    Staging area (index) Perubahan yang sudah dipilih untuk disimpan Kotak paket yang siap dikirim
    Repository (.git) Riwayat commit yang tersimpan permanen Arsip foto bertanggal

    Alurnya: edit file, lalu git add (masukkan ke kotak), lalu git commit (foto dan arsipkan). Dengan staging, kamu bisa memilih: dari lima file yang berubah, hanya dua yang di-commit sekarang.

    Perintah inti

    Perintah Fungsi
    git init Membuat repository baru di folder ini
    git status Melihat file mana yang berubah, baru, atau sudah di-stage
    git add <file> / git add . Memasukkan perubahan ke staging
    git commit -m "pesan" Menyimpan staging sebagai commit
    git log --oneline Melihat riwayat commit ringkas
    git diff Melihat perubahan yang belum di-stage
    git diff --staged Melihat perubahan yang sudah di-stage
    git restore <file> Membuang perubahan yang belum di-commit di file itu
    git restore --staged <file> Mengeluarkan file dari staging (perubahannya tetap ada)
    git revert <commit> Membuat commit baru yang membatalkan commit lama

    Kode singkat seperti 8cb6e4a di git log adalah potongan hash, sidik jari unik tiap commit.

    .gitignore

    File .gitignore berisi daftar file/folder yang tidak boleh dilacak Git:

    Pesan commit yang baik

    Pesan commit adalah catatan untuk dirimu di masa depan dan rekan tim. Aturan praktis:

    Buruk Baik
    update Tambah halaman about
    fix bug Perbaiki tombol menu yang tidak bisa diklik di HP
    wip lagi Pindahkan warna utama ke variabel CSS

    Restore vs revert

    Contoh kode

    Sesi lengkap berikut sudah dijalankan di repo uji. Hash commit di komputermu akan berbeda.

    # 1. Buat repo baru
    git init -b main portofolio
    # → Initialized empty Git repository in .../portofolio/.git/
    cd portofolio
    
    # 2. Buat file pertama, cek status
    echo '<h1>Halo</h1>' > index.html
    git status --short
    # → ?? index.html        (?? = file baru yang belum dilacak)
    
    # 3. Stage lalu commit
    git add index.html
    git commit -m "Tambah halaman awal"
    # → [main (root-commit) 8cb6e4a] Tambah halaman awal
    # →  1 file changed, 1 insertion(+)
    
    # 4. Siapkan .gitignore
    printf 'node_modules/\n.DS_Store\n.env\n' > .gitignore
    mkdir node_modules && echo x > node_modules/a.js
    echo SECRET=1 > .env
    git status --short
    # → ?? .gitignore        (node_modules dan .env tidak muncul: sudah diabaikan)
    git add .gitignore
    git commit -m "Tambah .gitignore"
    
    # 5. Ubah file, lihat perbedaannya
    echo '<p>Saya belajar web</p>' >> index.html
    git diff
    # → @@ -1 +1,2 @@
    # →  <h1>Halo</h1>
    # → +<p>Saya belajar web</p>     (+ = baris yang ditambah)
    
    # 6. Berubah pikiran: buang editan yang belum di-commit
    git restore index.html
    git status --short
    # → (kosong, kembali bersih)
    
    # 7. Commit yang ternyata salah, lalu dibatalkan dengan revert
    echo '<p>Baris salah</p>' >> index.html
    git commit -am "Tambah baris salah"   # -a: stage otomatis file yang sudah dilacak
    git revert --no-edit HEAD             # HEAD = commit terakhir
    # → [main 4504d1d] Revert "Tambah baris salah"
    
    git log --oneline
    # → 4504d1d Revert "Tambah baris salah"
    # → 0fca9b5 Tambah baris salah
    # → d7ef94c Tambah .gitignore
    # → 8cb6e4a Tambah halaman awal
    cat index.html
    # → <h1>Halo</h1>
    

    Kesalahan umum

    Latihan

    1. Mudah, Atur user.name, user.email, dan init.defaultBranch di komputermu, lalu cek dengan git config --global --list.
    2. Sedang, Buat repo latihan-git berisi index.html dan style.css. Buat minimal tiga commit dengan pesan yang baik, lalu tampilkan riwayat dengan git log --oneline.
    3. Menantang, Di repo yang sama, buat .gitignore yang mengabaikan .env dan node_modules/, buktikan dengan git status. Lalu buat commit yang "merusak" judul halaman dan batalkan dengan git revert.
    Lihat solusi
    1. Solusi:
    git config --global user.name "Nama Kamu"
    git config --global user.email "email@kamu.id"
    git config --global init.defaultBranch main
    git config --global --list
    # → user.name=Nama Kamu
    # → user.email=email@kamu.id
    # → init.defaultbranch=main
    
    1. Solusi:
    mkdir latihan-git && cd latihan-git
    git init
    echo '<h1>Latihan Git</h1>' > index.html
    git add index.html && git commit -m "Tambah halaman utama"
    echo 'h1 { color: navy; }' > style.css
    git add style.css && git commit -m "Tambah gaya judul"
    echo '<link rel="stylesheet" href="style.css">' >> index.html
    git commit -am "Hubungkan style.css ke halaman"
    git log --oneline
    # → 3 baris commit, terbaru di atas
    
    1. Solusi:
    printf '.env\nnode_modules/\n' > .gitignore
    echo 'API_KEY=rahasia' > .env
    git status --short
    # → ?? .gitignore   (.env tidak muncul)
    git add .gitignore && git commit -m "Abaikan .env dan node_modules"
    
    echo '<h1>JUDUL RUSAK</h1>' > index.html
    git commit -am "Ganti judul (salah)"
    git revert --no-edit HEAD
    cat index.html
    # → isi index.html kembali seperti sebelum commit salah
    

    Ringkasan

    Video pendamping

    Kalau penjelasan di atas belum masuk, tonton ini. Video dari kanal YouTube pihak lain.

    #1 APA ITU GIT & GITHUB?WPU · Bahasa IndonesiaBuka di YouTube

    Kuis pemahaman

    Pilih satu jawaban per soal. Penjelasan muncul setelah kamu menjawab.