Git sudah terpasang, identitas sudah dikonfigurasi. Sekarang jantungnya Git: init, add, commit. Tiga perintah ini adalah 80 persen kerjaan Git sehari-hari. Kuasai tiga ini dengan benar, sisanya cuma variasi.
Di artikel sebelumnya kita install dan konfigurasi. Di artikel #30 kita sudah kenal konsep tiga ruang: working directory, staging area, dan repository. Hari ini teori itu jadi praktik: kamu akan bikin repo pertamamu dan membuat commit pertama dengan tanganmu sendiri.
Siapkan satu folder latihan (misalnya folder berisi file to-do list dari seri JavaScript kemarin, atau folder kosong berisi satu file teks). Kita mulai.
git init: Menyalakan Mesin Waktu di Satu Folder
Git tidak bekerja "global" untuk seluruh komputermu. Ia bekerja per folder proyek. Perintah git init artinya: "Git, mulai catat riwayat untuk folder ini".
mkdir proyek-pertama
cd proyek-pertama
git init
Yang terjadi di balik layar: Git membuat folder tersembunyi bernama .git di dalam folder-mu. Di sanalah semua riwayat, konfigurasi, dan "foto-foto" disimpan. Folder kerjamu sendiri tidak berubah sama sekali, file-filemu tetap seperti semula.
Dua aturan penting. Pertama: git init cuma dijalankan satu kali per proyek, di awal. Menjalankannya dua kali tidak merusak apa-apa, tapi tidak ada gunanya. Kedua: jangan pernah mengutak-atik isi folder .git secara manual. Itu dapur internal Git, biarkan ia yang mengurus.
Analoginya: git init seperti memasang kamera CCTV di satu ruangan. Sekali dipasang, ia siap merekam. Tapi ingat, kamera yang terpasang belum merekam apa-apa sampai kamu menekan tombol rekam (itulah add dan commit).
git status: Tanya Dulu Sebelum Bertindak
Sebelum melakukan apa-apa, biasakan bertanya ke Git: "kondisiku sekarang bagaimana?" Caranya:
git status
Di repo yang baru di-init dan berisi satu file catatan.txt, outputnya kurang lebih:
Untracked files:
catatan.txt
"Untracked" artinya: Git melihat file ini ada, tapi belum mencatatnya sama sekali. Ia seperti tamu yang berdiri di depan CCTV tapi belum difoto. Jadikan kebiasaan: jalankan git status sebelum dan sesudah setiap perintah Git. Ini kompasmu. Kebanyakan kebingungan pemula ("kok fileku tidak ke-commit?") langsung terjawab begitu melihat status.
Berhenti dan tebak dulu! Kamu baru saja mengedit catatan.txt yang sudah pernah di-commit sebelumnya. Apa kata git status tentang file itu?
git add: Memilih yang Masuk Ruang Tunggu
Ingat tiga ruang dari artikel #30? git add adalah perintah yang memindahkan perubahan dari working directory ke staging area (ruang tunggu).
git add catatan.txt # tandai satu file spesifik
git add . # tandai SEMUA perubahan di folder ini
Kenapa tidak langsung difoto saja, pakai acara ruang tunggu segala? Karena kamu butuh kontrol. Bayangkan kamu mengerjakan dua hal: memperbaiki bug di app.js dan iseng mengubah warna tombol di style.css. Kamu mau menyimpannya sebagai dua commit terpisah yang rapi ("perbaiki bug login" dan "ubah warna tombol"), bukan satu commit campur aduk. Caranya: git add app.js, commit, lalu git add style.css, commit.
Untuk latihan sehari-hari, git add . (tandai semua) sudah cukup. Tapi pahami bahwa git add per file itu ada untuk saat kamu butuh ketelitian. Cek lagi dengan git status: file yang sudah di-add akan muncul di bagian "Changes to be committed".
git commit: Memotret dan Menyimpan Selamanya
Setelah yang mau difoto sudah di ruang tunggu, saatnya memotret:
git commit -m "Tambah file catatan pertama"
-m artinya "message", pesan yang menjelaskan apa dan kenapa perubahan ini dibuat. Pesan ini menempel permanen di riwayat dan akan dibaca oleh dirimu di masa depan (dan oleh rekan timmu). Tulis yang jelas.
Contoh pesan yang baik vs buruk:
- Buruk:
"update","fix","asdasd". Tidak memberi informasi apa-apa. - Baik:
"Tambah validasi form login","Perbaiki bug tombol hapus yang tidak berfungsi". Jelas apa yang berubah.
Aturan praktisnya: tulis pesan commit seolah menjawab pertanyaan "kalau commit ini di-undo, apa yang hilang?" Kalau jawabannya jelas dari pesanmu, pesanmu sudah bagus. Dan satu commit = satu perubahan logis. Jangan campur "perbaiki bug" + "tambah fitur" + "rapikan kode" dalam satu commit.
Berhenti dan tebak dulu! Urutan perintah ini dijalankan di repo baru berisi a.txt. Berapa commit yang tercatat di riwayat?
git add a.txt
git commit -m "Commit pertama"
git add a.txt
git commit -m "Commit kedua"
Membaca buku harian dengan git log. Setelah beberapa commit, intip riwayatnya:
git log --oneline
Outputnya ringkas, satu baris per commit: kode unik singkat (hash) + pesan. Contoh:
a1b2c3d Tambah validasi form login
e4f5g6h Tambah file catatan pertama
Dibaca dari bawah ke atas: yang paling bawah adalah commit tertua, yang paling atas adalah yang terbaru. Setiap baris adalah satu "foto" yang bisa kamu kunjungi kembali kapan pun. Inilah mesin waktu yang dijanjikan artikel #30, dan kamu baru saja membangunnya sendiri.
Kalau riwayatmu sudah panjang dan git log biasa terasa penuh sesak, --oneline adalah teman terbaikmu. Ada juga git log --oneline --graph yang menggambar garis percabangan, berguna nanti saat kita belajar branch di #34.
Dua Persepsi yang Sering Salah
Pertama: "commit = menyimpan file (seperti Ctrl+S)." Bukan. Menyimpan file (Ctrl+S) itu urusan text editor, terjadi di working directory. Commit itu mencatat snapshot perubahan ke riwayat Git. Kamu bisa menyimpan file 100 kali tanpa commit sekalipun, dan Git tidak mencatat apa-apa. Sebaliknya, tanpa menyimpan file dulu, tidak ada perubahan untuk di-commit. Dua hal berbeda, jangan tertukar.
Kedua: "git add . itu berbahaya, harus selalu add per file." Untuk proyek latihan pribadi, git add . itu baik-baik saja dan memang cara tercepat. Add per file baru penting saat kamu mengerjakan banyak hal sekaligus dan mau commit yang rapi terpisah. Jangan sampai perfeksionisme soal add menghambatmu commit rutin. Commit kecil yang sering jauh lebih baik daripada commit besar yang jarang.
Kuis cepat: Urutan yang benar untuk menyimpan perubahan ke riwayat Git adalah...
Latihan: Ubah, Jangan Cuma Dibaca
- Bikin repo latihanmu. Buat folder
latihan-git, isi dengan 2 file teks bebas, lalugit init,git add .,git commit -m "Commit pertamaku". Verifikasi dengangit log --onelinedangit status(status harus bersih). - Ubah dan commit lagi dua kali. Edit satu file, commit dengan pesan yang jelas. Lalu edit file yang lain, commit lagi. Lihat
git log --oneline: sekarang ada 3 baris riwayat. Rasakan ritmenya: ubah, add, commit, ulangi. - Latih commit terpisah. Ubah kedua file sekaligus, tapi commit secara terpisah:
git addfile pertama saja, commit; lalugit addfile kedua, commit. Cekgit statusdi antara dua commit untuk melihat perbedaannya. Ini melatih kontrol staging area.
Habis Ini ke Mana?
Repo lokalmu sudah punya riwayat yang rapi. Tapi ia masih tinggal di laptopmu sendirian. Kalau laptop hilang, riwayat ikut hilang. Kalau mau pamer ke teman, tidak ada caranya.
Artikel berikutnya, Cara Push Repo Pertamamu ke GitHub, menutup lingkaran: bikin akun dan repo di GitHub, menghubungkan repo lokal ke sana, dan mengunggah semua commit-mu dengan git push. Dari sanalah kodemu resmi "go public".
Diskusi & Komentar 0
Punya tanggapan, pertanyaan, atau tips seputar tutorial ini? Tulis komentar kamu di bawah!
Jadilah yang pertama membuka obrolan dan berbagi pandangan seputar tutorial resep kode ini.
Tulis Komentar
Komentar menggunakan akun Google. Harap berkomentar dengan santun dan berbobot.