Belajar Git - Inisialisasi & Dasar-Dasar Tracking File
Episode 3 of 21

Belajar Git - Inisialisasi & Dasar-Dasar Tracking File

Praktik pertama di Git: git init, status file (untracked, tracked, staged), git add dan mode patch interaktif, hingga menyusun .gitignore serta file penanda .gitkeep.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 2 kalian memahami arsitektur tiga area: working directory, staging area, dan repository. Sekarang saatnya menerapkan teori itu: menciptakan repository pertama, membaca status file, dan memahami bagaimana sebuah file "dikenal" oleh Git.

Sepanjang episode ini kalian akan mendengar empat kata yang selalu muncul di dunia Git: untracked, tracked, modified, dan staged. Empat status ini adalah bahasa percakapan sehari-hari Git — kuasai, dan semua episode berikutnya akan terasa jauh lebih mudah.

Membuat Repository Lokal dengan git init

Menginisialisasi Repository

Buat folder proyek, masuk ke dalamnya, lalu jalankan git init:

Membuat repository Git pertama
mkdir latihan-git
cd latihan-git
git init

Output akan menampilkan pesan seperti Initialized empty Git repository in .../.git/. Saat itu juga, Git membuat folder tersembunyi .git di dalam proyek — inilah repository itu sendiri: database objek, config, dan seluruh riwayat commit.

Warning

Folder .git adalah jantung repository. Jangan pernah menghapusnya — repository kalian lenyap. Biasakan memeriksa lokasi kerja dengan pwd sebelum menjalankan git init agar tidak membuat repository di tempat yang salah.

Struktur Folder .git

Di dalam .git terdapat beberapa komponen penting:

KomponenFungsi
objects/Database objek Git (blob, tree, commit)
refs/Pointer branch dan tag
HEADPointer ke branch yang aktif saat ini
configKonfigurasi repository (lokal)
indexStaging area (file yang sudah di-add)

Membaca Status dengan git status

git status adalah perintah paling sering dipakai di Git. Ia menampilkan kondisi seluruh file dalam tiga area.

Status repository yang baru dibuat
git status
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)

Sekarang buat beberapa file dan lihat bagaimana statusnya berubah:

Membuat file pertama
echo "<h1>Halo Dunia</h1>" > index.html
mkdir docs && echo "catatan" > docs/README.md

Status file terbagi dalam empat kategori:

  • Untracked (??) — file baru yang belum pernah dikenali Git.
  • Tracked — file yang sudah masuk riwayat Git.
  • Modified ( M) — file ter-tracking yang isinya berubah di working directory.
  • Staged (A ) — perubahan sudah masuk staging area, siap di-commit.

Memindahkan File ke Staging Area

git add <file> dan git add .

Untuk memberitahu Git bahwa sebuah file harus dilacak, gunakan git add:

Menandai file untuk di-track
git add index.html
git add docs/README.md
git add .
  • git add <file> — menandai satu file spesifik.
  • git add . — menandai semua perubahan di folder aktif sekaligus.

Setelah git add, file berpindah dari untracked menjadi staged: Git merekam isi file ke staging area dan menjamin versi itulah yang akan di-commit.

Tip

Tim profesional lebih sering memakai git add <file> yang spesifik daripada git add . yang borongan, terutama untuk perubahan besar. Dengan begitu kalian sadar betul apa saja yang akan masuk ke commit berikutnya.

Interactive Staging: git add -p

Kadang kalian ingin menandai hanya sebagian baris dari satu file — misalnya memisahkan perbaikan bug dari penambahan fitur. Mode patch interaktif menjawab kebutuhan ini:

Menandai sebagian perubahan
git add -p src/utils.js
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? y
Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? n

Mode ini menampilkan perubahan per "hunk" (potongan) dan menanyakan satu per satu: y untuk menyetujui, n untuk menolak, e untuk mengedit hunk secara manual. Ini senjata utama untuk menjaga commit tetap kecil dan fokus.

Mengabaikan File dengan .gitignore

Sintaks Dasar

Tidak semua file seharusnya masuk Git — dependency (node_modules), artefak build, dan file environment. File .gitignore di akar proyek memberitahu Git: jangan pernah tampilkan atau lacak pola ini.

Contoh .gitignore
node_modules/
dist/
*.log
.env
!.env.example
  • node_modules/ — abaikan folder (dengan slash di akhir).
  • *.logwildcard: abaikan semua file berakhiran .log.
  • .env — abaikan file rahasia.
  • !.env.examplenegasi: kecualikan kembali .env.example dari aturan ignore.
  • Baris kosong dan baris yang diawali # adalah komentar — beri keterangan singkat untuk setiap blok.

.gitignore Global dan Template

Pola yang berlaku di semua proyek (misalnya file .DS_Store di macOS) bisa dipasang sekali secara global:

Membuat .gitignore global
git config --global core.excludesFile ~/.gitignore_global
echo ".DS_Store" >> ~/.gitignore_global

GitHub juga menyediakan template .gitignore resmi untuk hampir semua bahasa dan framework — ambil sebagai titik awal saat membuat proyek baru.

File .gitkeep

Git tidak melacak folder kosong — hanya file. Untuk mempertahankan struktur folder kosong (misal images/ atau uploads/) di repository, taruh file kosong bernama .gitkeep di dalamnya. File ini hanyalah penanda konvensional, tanpa fungsi khusus di mata Git.

Penutup

Rekap episode 3:

  • git init menciptakan repository dan folder .git berisi database objek dan config.
  • git status membedakan empat status: untracked, tracked, modified, staged.
  • git add <file> / git add . memindahkan perubahan ke staging area; git add -p menyeleksi per baris.
  • .gitignore menjaga repository tetap bersih dari dependency, artefak, dan rahasia.
  • .gitkeep mempertahankan folder kosong agar tetap masuk Git.

Di episode 4 kita membuat commit pertama: menyimpan snapshot secara permanen dengan git commit, menulis pesan commit profesional dengan Conventional Commits, membaca riwayat dengan git log, dan memperbaiki commit terakhir dengan --amend. Persiapan yang kalian lakukan di sini adalah bahan bakarnya. Sampai jumpa!