main kini memuat empat commit konten yang stabil — keadaan yang layak dipertahankan sambil mencoba hal baru. Fitur berikutnya, glosarium istilah Git, akan dikerjakan lewat jalur yang sampai sejauh ini baru teori: branch. Bagian ini mengulang ritme feature branch dalam skala paling kecil — satu branch, satu commit, satu merge — dengan --no-ff supaya penyatuannya tercatat sebagai merge commit yang terlihat di riwayat. Teori di balik setiap langkah sudah dibahas tuntas di section Branch dan Merging ; di sini kita menjalaninya sendiri.

Empat langkah ritmenya dapat dipetakan sebelum mengetik:

Branch dibuat, diisi, lalu digabungkan — dan label branch yang sudah menunaikan tugasnya dibersihkan. Empat langkah itulah yang dijalankan satu per satu berikut ini.

Membuat Branch Fitur #

Satu perintah membuat branch sekaligus berpindah ke sana:

bash
git switch -c fitur/tambah-glosarium

Output yang Dihasilkan:

text
Switched to a new branch 'fitur/tambah-glosarium'

Opsi -c menggabungkan dua aksi: buat branch fitur/tambah-glosarium dari posisi main saat itu, lalu pindahkan HEAD ke branch baru tersebut. Nama branch memakai format fitur/nama-fitur — deskriptif, mudah dicari, dan lazim di proyek nyata. Bentuk modern git switch -c ini dibanding git checkout -b dibahas pada chapter git switch .

Menyusun Glosarium #

Fitur ini menambahkan satu dokumen berisi lima istilah Git dasar yang paling sering muncul di catatan:

bash
cat > docs/glosarium.md <<'EOF'
# Glosarium Git

Istilah Git dasar yang paling sering muncul di catatan ini.

| Istilah | Arti |
| --- | --- |
| repository | tempat Git menyimpan seluruh riwayat proyek, berada di dalam folder `.git` |
| staging area | area penampung sementara perubahan yang akan masuk ke commit berikutnya |
| commit | snapshot proyek yang sudah disimpan beserta pesan penjelasnya |
| branch | garis pengembangan mandiri yang menampung rangkaian commit |
| tag | penanda tetap pada satu commit, lazim dipakai untuk nomor versi |
EOF
bash
cat docs/glosarium.md

Output yang Dihasilkan:

text
# Glosarium Git

Istilah Git dasar yang paling sering muncul di catatan ini.

| Istilah | Arti |
| --- | --- |
| repository | tempat Git menyimpan seluruh riwayat proyek, berada di dalam folder `.git` |
| staging area | area penampung sementara perubahan yang akan masuk ke commit berikutnya |
| commit | snapshot proyek yang sudah disimpan beserta pesan penjelasnya |
| branch | garis pengembangan mandiri yang menampung rangkaian commit |
| tag | penanda tetap pada satu commit, lazim dipakai untuk nomor versi |

Dokumen baru perlu terdaftar di daftar isi, jadi README.md ikut disunting di branch yang sama:

bash
cat > README.md <<'EOF'
# Buku Catatan

Kumpulan catatan belajar saya.

## Daftar Isi

- [Panduan Struktur Catatan](docs/panduan.md)
- [Glosarium Git](docs/glosarium.md)
EOF
bash
cat README.md

Output yang Dihasilkan:

text
# Buku Catatan

Kumpulan catatan belajar saya.

## Daftar Isi

- [Panduan Struktur Catatan](docs/panduan.md)
- [Glosarium Git](docs/glosarium.md)

Menyimpan Commit di Branch #

Status kini memuat dua jenis perubahan sekaligus:

bash
git status

Output yang Dihasilkan:

text
On branch fitur/tambah-glosarium
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	docs/glosarium.md

no changes added to commit (use "git add" and/or "git commit -a")

Baris pertama mengabarkan posisi: On branch fitur/tambah-glosarium — semua yang disimpan sekarang masuk ke branch fitur, bukan main. Di bawahnya, README.md berstatus modified dan docs/glosarium.md untracked. Keduanya satu satuan kerja yang sama, jadi satu commit sudah tepat:

bash
git add docs/glosarium.md README.md
git commit -m "docs: tambahkan glosarium istilah Git dasar"

Output yang Dihasilkan (perintah terakhir):

text
[fitur/tambah-glosarium 68e553b] docs: tambahkan glosarium istilah Git dasar
 2 files changed, 12 insertions(+)
 create mode 100644 docs/glosarium.md

Nama di dalam kurung siku kini fitur/tambah-glosarium — bukti tertulis bahwa commit mendarat di branch fitur. Dua berkas berubah dalam satu commit karena keduanya menyatu menjadi satu fitur.

Branch yang Berbeda, Berkas yang Berbeda #

Sekarang datang momen yang menjelaskan kenapa branch disebut terisolasi. Kembali ke main:

bash
git switch main

Output yang Dihasilkan:

text
Switched to branch 'main'

Baca README.md di posisi ini:

bash
cat README.md

Output yang Dihasilkan:

text
# Buku Catatan

Kumpulan catatan belajar saya.

## Daftar Isi

- [Panduan Struktur Catatan](docs/panduan.md)

Daftar isi di main hanya memuat satu tautan — glosarium tidak ada. Periksa juga isi folder docs/:

bash
ls docs

Output yang Dihasilkan:

text
panduan.md

docs/glosarium.md benar-benar tidak hadir di main: berkas itu hidup hanya di commit pada branch fitur, dan folder kerja menampilkan isi branch yang aktif — perilaku yang dibedah pada chapter Branch dan Commit . Kembali ke branch fitur, semua kembali hadir:

bash
git switch fitur/tambah-glosarium
ls docs

Output yang Dihasilkan (kedua perintah):

text
Switched to branch 'fitur/tambah-glosarium'
glosarium.md
panduan.md

Menggabungkan ke main dengan –no-ff #

Pekerjaan di branch sudah selesai dan tersimpan. Untuk menyatukannya, berdiri di tujuan dulu — main — lalu panggil merge:

bash
git switch main
git merge --no-ff fitur/tambah-glosarium -m "Merge branch 'fitur/tambah-glosarium'"

Output yang Dihasilkan (perintah terakhir):

text
Merge made by the 'ort' strategy.
 README.md         |  1 +
 docs/glosarium.md | 11 +++++++++++
 2 files changed, 12 insertions(+)
 create mode 100644 docs/glosarium.md

Baris Merge made by the 'ort' strategy mengabarkan bahwa Git menyatukan kedua jalur lewat strategi tiga arah bawaan, lalu membuat commit gabungan. Opsi --no-ff memaksanya: tanpa opsi itu, main yang tidak bergerak sejak branch dibuat akan cukup maju cepat ke commit fitur — tanpa jejak bahwa dulu ada branch. Dengan --no-ff, merge commit tetap dibuat agar fitur dan penyatuannya terbaca di riwayat; perbandingan keduanya dibahas pada Fast-Forward Merge dan Three-Way Merge . Seluruh opsi merge lainnya terdokumentasi di dokumentasi resmi git merge .

Membaca Bentuk Riwayat Setelah Merge #

Bentuk riwayat terbaik dilihat dengan graf:

bash
git log --graph --oneline

Output yang Dihasilkan:

text
*   c444343 Merge branch 'fitur/tambah-glosarium'
|\  
| * 68e553b docs: tambahkan glosarium istilah Git dasar
|/  
* ecb3bec docs: lengkapi README dengan daftar isi
* fd7e5b9 docs: tambahkan panduan struktur catatan
* d047b69 chore: tambahkan .gitignore
* 6c59970 docs: rintis buku catatan

Graf tersebut dibaca dari atas:

  1. * c444343 — merge commit di puncak; commit ini punya dua induk: ecb3bec dari main dan 68e553b dari branch fitur.
  2. |\ dan |/ — dua garis yang terpisah lalu menyatu; itulah visual dari kehidupan branch fitur/tambah-glosarium.
  3. | * 68e553b — commit fitur berdiri di jalur samping, bukan di jalur utama.
  4. Empat baris terakhir — sejarah main yang lurus sebelum branch dibuat.

Tanpa --no-ff, baris merge commit dan kedua garis percabangan tidak akan pernah ada — commit fitur akan tampak seolah dikerjakan langsung di main. Materi lengkapnya ada di chapter Graph History .

Menghapus Branch #

Branch sudah menunaikan tugasnya, dan label yang menggantung tanpa pekerjaan hanya menambah kebisingan:

bash
git branch -d fitur/tambah-glosarium

Output yang Dihasilkan:

text
Deleted branch fitur/tambah-glosarium (was 68e553b).

Opsi -d (huruf kecil) hanya menghapus branch yang pekerjaannya sudah sepenuhnya tergabung — Git menolak bila masih ada commit yang belum menyatu. Opsi -D memaksa penghapusan tanpa syarat itu dan hanya untuk keadaan yang benar-benar diniatkan; keduanya dibahas pada chapter Menghapus Branch .

Latihan: Branch Fitur Sendiri #

Ulangi ritme yang sama dengan fitur pilihan sendiri. Misalnya, branch yang menambahkan kumpulan tips belajar:

bash
git switch -c fitur/tambah-tips
cat > docs/tips-belajar.md <<'EOF'
# Tips Belajar

- Satu sesi belajar mencakup satu topik.
- Catat hal yang sempat salah; itu bahan latihan terbaik.
EOF
git add docs/tips-belajar.md
git commit -m "docs: tambahkan tips belajar"
git switch main
git merge --no-ff fitur/tambah-tips -m "Merge branch 'fitur/tambah-tips'"
git log --graph --oneline
git branch -d fitur/tambah-tips

Keluaran tiap langkah akan meniru keluaran bagian ini: branch baru dibuat, commit mendarat di branch, --no-ff melahirkan merge commit kedua, dan graf menampilkan percabangan baru di samping percabangan glosarium. Nama fitur bisa diganti sesuai minat — yang dilatih tetap ritmenya.

Ritme empat langkah itu kini menjadi milik kita. Bagian 4 menutup proyek dengan menandai hasil kumulatifnya sebagai versi pertama: update README.md, commit rilis, dan tag v1.0.0.