Sebelum menghafal daftar perintah, kita perlu satu peta mental: perubahan pada Git mengalir melalui tiga area sebelum menjadi riwayat permanen. Working directory tempat kita menyunting berkas, staging area sebagai keranjang perubahan yang terpilih, dan repository sebagai database riwayat di dalam folder tersembunyi .git. Dua perintah kunci — git add dan git commit — hanyalah pintu antararea tersebut. Pada chapter ini kita bedah ketiganya, memahami model snapshot yang menjadi cara Git menyimpan data, lalu menjalankan alur lengkap init → add → commit → log di repositori latihan sungguhan.
Tiga Area dalam Repositori #
Aliran perubahan pada Git selalu berbentuk satu arah berikut:
Ketiga area pada diagram memiliki peran yang berbeda-beda:
| Area | Letak | Isi | Peran |
|---|---|---|---|
| Working directory | Folder proyek yang terlihat sehari-hari | Berkas versi kerja terbaru | Tempat kita menyunting bebas |
| Staging area | Berkas index di dalam .git | Daftar perubahan yang terpilih | Keranjang isi commit berikutnya |
| Repository | Folder tersembunyi .git | Snapshot beserta metadata | Database riwayat permanen |
Pemisahan staging area inilah ciri khas Git. Berkat area tengah tersebut, kita dapat memilih perubahan mana yang ikut dicatat pada commit berikutnya — bahkan saat berkas lain masih setengah sunting. Bedah mendalam tiap area dan perintahnya ada di section Dasar Repository .
Git Menyimpan Snapshot #
Setiap kali kita menjalankan commit, Git menyimpan satu snapshot — potret lengkap kondisi seluruh berkas yang dilacak pada titik waktu itu. Berkas yang tidak berubah sejak snapshot sebelumnya tidak disimpan ulang; Git cukup merujuk versi lamanya sehingga hemat ruang. Karakteristik ini — dibahas pada chapter Mengenal Git — membuat setiap versi proyek tersedia utuh, bukan rekonstruksi dari rangkaian diff.
Konsekuensi praktisnya: berpindah antarversi berarti menata ulang isi working directory agar persis sama dengan snapshot terpilih. Tidak ada proses menjumlahkan seluruh perubahan dari awal, sehingga berpindah versi terasa seketika.
Menjalankan Alur Pertama #
Sekarang kita jalankan alur dasarnya di repositori latihan. Setiap latihan pada Course dapat dimulai dari keadaan bersih dengan menghapus folder latihan lalu membuat ulang repositorinya.
Langkah 1 — Inisialisasi Repositori #
Perintah git init -b main membuat repositori baru dengan branch awal bernama main:
git init -b mainOutput yang Dihasilkan:
Initialized empty Git repository in /home/z/my-project/tutorial-extracted/work/sandbox/pengantar-git/.git/Jalur pada keluaran di atas menyesuaikan lokasi direktori masing-masing; bagian pentingnya adalah Git membuat folder tersembunyi .git di dalam folder proyek. Seluruh riwayat proyek akan tersimpan di sana. Kondisi repositori yang masih kosong dapat kita periksa:
git statusOutput yang Dihasilkan:
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)Status memperlihatkan branch aktif (main), jumlah commit yang masih nol, dan saran Git untuk mulai melacak berkas.
Langkah 2 — Berkas Baru Masih Untracked #
Buat satu berkas latihan berisi satu baris catatan, lalu periksa statusnya:
printf 'Belajar Git dimulai dari konsep, bukan hafalan perintah.\n' > catatan.md
git statusOutput yang Dihasilkan:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
catatan.md
nothing added to commit but untracked files present (use "git add" to track)Perintah printf tidak menampilkan keluaran apa pun karena tulisannya masuk langsung ke berkas — keluaran di atas seluruhnya berasal dari git status. Berkas catatan.md berstatus untracked: Git melihat berkasnya ada, tetapi belum diminta mencatat perubahan berkas itu. Git pun menyarankan perintah untuk mulai melacaknya.
Langkah 3 — Memilih Perubahan ke Staging Area #
Perintah git add memasukkan berkas ke staging area:
git add catatan.md
git statusOutput yang Dihasilkan:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: catatan.mdStatus berubah menjadi Changes to be committed — isi keranjang commit berikutnya sudah terisi satu berkas baru. Perilaku git add lebih rinci bisa dibaca pada dokumentasi git add
; petunjuk git rm --cached <file>... pada keluaran menunjukkan cara membatalkannya bila kita berubah pikiran, dan topik itu dibahas tuntas pada section Melacak Perubahan
.
Langkah 4 — Mencatat Snapshot #
Perintah git commit -m mencatat seluruh isi staging area sebagai satu snapshot permanen — opsi-opsinya dibahas lengkap pada dokumentasi git commit
:
git commit -m "Tambah catatan pertama"Output yang Dihasilkan:
[main (root-commit) 5848ca9] Tambah catatan pertama
1 file changed, 1 insertion(+)
create mode 100644 catatan.mdMari kita baca keluaran commit baris per baris:
- Baris 1 (
[main (root-commit) 5848ca9] ...): commit dicatat pada branchmain; label root-commit menandai commit pertama dalam repositori;5848ca9adalah potongan identitas unik commit. - Baris 2 (
1 file changed, 1 insertion(+)): ringkasan isi snapshot — satu berkas berubah dengan satu baris tambahan. - Baris 3 (
create mode 100644 catatan.md): berkas baru diciptakan dengan mode100644, format izin berkas biasa di Git.
Deretan karakter 5848ca9 pada keluaran pembaca pasti berbeda, karena identitas commit dihitung dari isi dan waktu pembuatannya — mesin kita berbeda berarti identitasnya berbeda. Konsep identitas ini dibedah pada chapter Repository dan Commit
.
Langkah 5 — Melihat Riwayat #
Dua perintah penutup alur: menampilkan riwayat dan memastikan keadaan bersih:
git log --oneline
git statusOutput yang Dihasilkan:
5848ca9 Tambah catatan pertamaOn branch main
nothing to commit, working tree cleanKeluaran pertama berasal dari git log --oneline, keluaran kedua dari git status. Baris pada git log --oneline berpasangan: identitas pendek commit di kiri, pesan commit di kanan. Status working tree clean menegaskan working directory dan staging area sudah tidak menyimpan perubahan — semuanya aman di dalam riwayat.
Lima langkah di atas adalah denyut nadi kerja harian dengan Git: sunting, pilih, catat, lalu periksa. Bedah mendalam setiap perintahnya ada di section Dasar Repository . Namun sebelum memperdalam perintah, ada satu kebingungan yang perlu diluruskan lebih dulu — perbedaan antara Git alat di komputer kita dan GitHub layanan di internet. Lanjut ke Git vs GitHub .