- Bab 4 dari 8
- 25 menit
- 4 soal kuis
Siklus Kerja Harian: init, status, add, commit, log
Di bab ini (11 bagian)
Tujuan bab ini
- Membuat repositori baru dengan
git initdan membaca keadaannya lewatgit status. - Memindahkan perubahan ke staging area dengan
git add(per file,., dan sekilas-p). - Menyimpan snapshot dengan
git commit -mlalu melihat riwayatnya dengangit log --oneline. - Hafal peta enam perintah dasar: clone, status, add, commit, push, pull.
Siklus yang terus berulang
Kerja harian dengan Git itu sebenarnya cuma satu lingkaran yang kamu putari berkali-kali dalam sehari:
- Siapkan repositori:
git inituntuk proyek baru, ataugit clone <url>untuk proyek yang sudah ada di GitHub. - Ubah berkas seperti biasa di editor.
- Periksa dan pilih:
git status, lalugit adduntuk berkas yang mau disimpan. - Simpan snapshot:
git commit -m "pesan". - Bagikan ke tim:
git push.
Ingat tiga "tempat" yang sudah kamu kenal: working directory (berkas yang kamu edit), staging area (daftar perubahan yang siap disimpan), dan repositori (riwayat commit di folder .git). Hampir semua perintah di bab ini hanya memindahkan perubahan dari satu tempat ke tempat berikutnya.
git init: mulai dari nol
Masuk ke folder proyek, lalu jalankan:
Git membuat folder tersembunyi .git yang menyimpan seluruh riwayat. Jangan dihapus, karena itu sama saja dengan menghapus semua commit. Kalau di laptopmu sudah diatur git config --global init.defaultBranch main, cabang pertama otomatis bernama main. Tanpa pengaturan itu, Git 2.43 masih memakai nama master dan menampilkan petunjuk tentang cara menggantinya.
git status: kompas kamu
git status tidak mengubah apa pun, jadi aman dijalankan kapan saja. Biasakan menjalankannya sebelum dan sesudah setiap perintah lain. Setelah membuat README.md dan index.html di repositori baru:
Untracked artinya Git melihat berkas itu, tapi belum pernah menyimpannya. Perhatikan juga bahwa Git selalu memberi petunjuk perintah berikutnya di dalam tanda kurung. Baca petunjuk itu, karena sering kali jawabannya ada di sana.
Mau versi singkat? Pakai git status -s. Kolom kiri menunjukkan isi staging area, kolom kanan menunjukkan working directory:
| Kode | Arti |
|---|---|
?? | untracked, belum pernah di-add |
A | berkas baru, sudah di staging |
M | diubah, belum di staging |
M | diubah, sudah di staging |
MM | sudah di staging, lalu diubah lagi |
git add: memilih apa yang disimpan
Setelah git add README.md, status berubah menjadi:
Staging area membuat kamu bisa memilih. Misalnya kamu mengubah tiga berkas, tapi baru satu yang benar-benar selesai. Cukup add berkas yang selesai itu, commit, lalu lanjutkan sisanya.
git add -p (patch) bahkan bisa memilih sebagian isi sebuah berkas. Git menampilkan potongan perubahan satu per satu lalu bertanya:
Jawab y untuk memasukkan potongan itu, n untuk melewatinya, s untuk memecahnya jadi lebih kecil, dan q untuk berhenti. Untuk sekarang cukup tahu bahwa fitur ini ada. Nanti saat commit-mu mulai rapi, fitur ini akan sering kepakai.
git commit -m: simpan snapshot
16416d0 adalah 7 karakter awal hash commit. Hash di laptopmu pasti berbeda, karena hash dihitung dari isi, nama penulis, dan waktu. root-commit menandai commit pertama di repositori. Yang ikut tersimpan hanya isi staging area, bukan semua berkas yang sedang kamu edit.
Pesan commit yang baik itu pendek, jelas, dan menjelaskan apa yang berubah: "Tambah form login", "Perbaiki validasi email". Hindari pesan seperti "update" atau "asdf", karena kamu sendiri yang akan bingung membacanya bulan depan.
git log --oneline: lihat riwayat
Satu commit satu baris, yang terbaru di atas. (HEAD -> main) artinya kamu sedang berada di cabang main, tepat di commit tersebut. Tanpa --oneline, Git menampilkan hash lengkap, penulis, dan tanggal. Kalau daftarnya panjang, Git membuka pager: gulir dengan panah, keluar dengan q.
Peta perintah dasar
Enam perintah ini sudah cukup untuk 90% kerja harian:
| Perintah | Fungsi |
|---|---|
git clone <url> | menyalin repositori remote beserta seluruh riwayatnya |
git status | melihat berkas yang berubah, ter-stage, atau untracked |
git add <file> / . | memindahkan perubahan ke staging area |
git commit -m "pesan" | menyimpan snapshot dari staging area |
git push | mengirim commit lokal ke remote |
git pull | mengambil perubahan dari remote lalu menggabungkannya |
clone, push, dan pull butuh repositori remote seperti GitHub, dan akan kita bahas di bab remote. Empat perintah sisanya bisa kamu latih sekarang juga, sepenuhnya offline.
Kesalahan umum
- Lupa
git addsebelum commit. Git akan menjawabno changes added to commit. Cekgit statusdan add berkasnya dulu. - Mengedit lagi setelah add. Status
MMberarti versi yang ada di staging adalah versi lama. Jalankangit addsekali lagi supaya perubahan terbaru ikut tersimpan. git initdi folder yang salah, misalnya di home folder. Seluruh isi home jadi untracked. Hapus folder.gityang salah itu, lalu jalankan init di folder proyek.- Commit raksasa. Satu commit berisi sepuluh perubahan yang tidak saling berhubungan susah dibaca dan susah dibatalkan. Commit kecil dan fokus jauh lebih enak.
- Ikut meng-commit berkas rahasia seperti
.envgara-garagit add .. Selalu lihatgit statussebelum commit.
Coba sendiri
Ikuti di terminal. Hash yang muncul di laptopmu akan berbeda, dan itu normal.
Sekarang ubah berkasnya, lalu ulangi siklusnya:
Coba juga: edit README, jalankan git add, edit lagi, lalu lihat git status -s dan cari kode MM.
Rangkuman
- Siklus harian: edit,
git status,git add,git commit, ulangi, lalugit pushuntuk berbagi. git statusadalah kompas: aman dijalankan kapan saja dan selalu memberi petunjuk perintah berikutnya.git addmemilih apa yang masuk commit, bisa per berkas,.untuk semua, atau-puntuk sebagian isi berkas.git commit -mhanya menyimpan isi staging area, dangit log --onelinemenampilkan riwayatnya per baris.
Slide 13 sampai 14 dari deck Git. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Kuis (4 soal)
Cek pemahaman
1Apa output baris terakhir rangkaian perintah berikut?
git init echo halo > a.txt git add a.txt echo lagi >> a.txt git status -s2Perintah mana yang menyimpan isi staging area sebagai snapshot baru?
3git add -p bisa memasukkan sebagian perubahan dalam satu berkas ke staging area.
4Berapa baris yang dicetak oleh git log --oneline di akhir?
git init echo a > a.txt git add a.txt git commit -m "Satu" echo b > b.txt git commit -m "Dua" git log --oneline