Commit pertama menempatkan fondasi; bagian ini mengisi rumahnya. Tiga perubahan nyata menyusul — berkas .gitignore, dokumen panduan struktur catatan, dan daftar isi pada README.md — dengan satu aturan yang dipegang sejak sekarang: satu satuan kerja, satu commit. Aturan itu membuat setiap baris git log terbaca sebagai daftar pekerjaan, bukan tumpukan “update lagi”. Di akhir bagian, git log --oneline --stat menampilkan seluruh empat commit beserta jejak perubahannya, dan satu latihan kecil menantang kita menambah catatan pertama milik sendiri.
Menambahkan .gitignore #
Repository catatan pasti menghasilkan berkas sementara: berkas cadangan editor, jejak sistem operasi, dan draf yang belum layak disimpan. .gitignore mencegah ketiganya masuk ke riwayat sejak dini:
cat > .gitignore <<'EOF'
*.tmp
.DS_Store
draft-*
EOFIsinya tiga pola sederhana:
cat .gitignoreOutput yang Dihasilkan:
*.tmp
.DS_Store
draft-*Baris pertama menyamarkan semua berkas berakhiran .tmp; baris kedua menyembunyikan berkas metadata .DS_Store yang dibuat macOS di setiap folder; baris ketiga menyasar semua draf catatan yang kita awali dengan draft- — konvensi yang akan dipakai pada latihan di akhir bagian. Pola-pola lengkap .gitignore dibahas pada chapter Pola .gitignore
, dan sintaksnya terdokumentasi utuh di dokumentasi resmi gitignore
.
Periksa status, lalu simpan sebagai satu commit terpisah:
git statusOutput yang Dihasilkan:
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)git add .gitignore
git commit -m "chore: tambahkan .gitignore"Output yang Dihasilkan (perintah terakhir):
[main d047b69] chore: tambahkan .gitignore
1 file changed, 3 insertions(+)
create mode 100644 .gitignoreMenambahkan Panduan Struktur Catatan #
Buku catatan hanya terbaca baik bila strukturnya konsisten, jadi aturannya perlu ditulis. Dokumen pertama masuk ke folder docs/ — konvensi umum untuk memisahkan dokumen dari kode:
mkdir docs
cat > docs/panduan.md <<'EOF'
# Panduan Struktur Catatan
Setiap catatan disimpan sebagai satu berkas Markdown di dalam folder sesuai topiknya.
## Aturan Penamaan
- Nama berkas memakai huruf kecil dan tanda hubung: `git-dasar.md`, bukan `Git Dasar.md`.
- Awali dengan topik lalu subtopik: `git-branch.md`, `git-merge.md`.
## Struktur Isi
1. Judul catatan sebagai satu heading level 1.
2. Ringkasan satu paragraf: apa yang dipelajari.
3. Bagian inti: konsep, contoh, dan catatan pribadi.
4. Tautan sumber belajar di bagian akhir.
## Konvensi Lain
- Satu catatan membahas satu topik.
- Simpan draf dengan awalan `draft-` agar diabaikan Git (lihat `.gitignore`).
EOFcat docs/panduan.mdOutput yang Dihasilkan:
# Panduan Struktur Catatan
Setiap catatan disimpan sebagai satu berkas Markdown di dalam folder sesuai topiknya.
## Aturan Penamaan
- Nama berkas memakai huruf kecil dan tanda hubung: `git-dasar.md`, bukan `Git Dasar.md`.
- Awali dengan topik lalu subtopik: `git-branch.md`, `git-merge.md`.
## Struktur Isi
1. Judul catatan sebagai satu heading level 1.
2. Ringkasan satu paragraf: apa yang dipelajari.
3. Bagian inti: konsep, contoh, dan catatan pribadi.
4. Tautan sumber belajar di bagian akhir.
## Konvensi Lain
- Satu catatan membahas satu topik.
- Simpan draf dengan awalan `draft-` agar diabaikan Git (lihat `.gitignore`).Statusnya menampilkan satu perilaku menarik:
git statusOutput yang Dihasilkan:
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
docs/
nothing added to commit but untracked files present (use "git add" to track)Git meringkas seluruh folder menjadi satu baris docs/ karena belum ada satu berkas pun di dalamnya yang dilacak — folder itu sendiri tidak pernah dilacak, hanya berkasnya. Simpan panduan sebagai commit kedua:
git add docs/panduan.md
git commit -m "docs: tambahkan panduan struktur catatan"Output yang Dihasilkan (perintah terakhir):
[main fd7e5b9] docs: tambahkan panduan struktur catatan
1 file changed, 20 insertions(+)
create mode 100644 docs/panduan.mdMelengkapi README dengan Daftar Isi #
Dokumen mulai bertambah, jadi README.md perlu memandu pembacanya. Sunting README menjadi:
cat > README.md <<'EOF'
# Buku Catatan
Kumpulan catatan belajar saya.
## Daftar Isi
- [Panduan Struktur Catatan](docs/panduan.md)
EOFcat README.mdOutput yang Dihasilkan:
# Buku Catatan
Kumpulan catatan belajar saya.
## Daftar Isi
- [Panduan Struktur Catatan](docs/panduan.md)Kali ini berkas sudah dilacak, jadi statusnya berubah menjadi suntingan:
git statusOutput yang Dihasilkan:
On branch main
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
no changes added to commit (use "git add" and/or "git commit -a")Sebelum menyimpan, baca dulu apa yang sebenarnya berubah — kebiasaan dari chapter Memeriksa Perubahan Sebelum Commit :
git diffOutput yang Dihasilkan:
diff --git a/README.md b/README.md
index 8ca9a76..eb729b4 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,7 @@
# Buku Catatan
Kumpulan catatan belajar saya.
+
+## Daftar Isi
+
+- [Panduan Struktur Catatan](docs/panduan.md)Keluaran git diff dibaca dari atas:
- Baris
diff --git— berkas yang dibandingkan:README.mddengan dirinya sendiri. - Baris
index— posisi versi lama dan baru di database Git. - Baris
@@ -1,3 +1,7 @@— hunk: versi lama menampilkan tiga baris mulai baris 1, versi baru tujuh baris mulai baris 1. - Baris berawalan
+— empat baris baru yang ditambahkan; baris tanpa tanda adalah konteks yang tidak berubah.
Simpan perubahan yang sudah diperiksa:
git add README.md
git commit -m "docs: lengkapi README dengan daftar isi"Output yang Dihasilkan (perintah terakhir):
[main ecb3bec] docs: lengkapi README dengan daftar isi
1 file changed, 4 insertions(+)Membaca Kembali Seluruh Riwayat #
Empat commit kini tertanam. git log dengan --stat menampilkan setiap commit beserta ringkasan perubahannya:
git log --oneline --statOutput yang Dihasilkan:
ecb3bec docs: lengkapi README dengan daftar isi
README.md | 4 ++++
1 file changed, 4 insertions(+)
fd7e5b9 docs: tambahkan panduan struktur catatan
docs/panduan.md | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
d047b69 chore: tambahkan .gitignore
.gitignore | 3 +++
1 file changed, 3 insertions(+)
6c59970 docs: rintis buku catatan
README.md | 3 +++
1 file changed, 3 insertions(+)Riwayat terbaca seperti laporan pekerjaan: commit terbaru di atas, dan setiap pesan menjelaskan satu keputusan. Tanda + di kolom kanan memperlihatkan ukuran tiap perubahan — penggunaan --stat dan opsi log lainnya dibahas pada chapter Opsi git log
.
Latihan Kecil: Catatan Pertama #
Giliran isi repository diisi catatan sungguhan. Buat satu catatan pertama mengikuti panduan yang baru saja ditulis:
mkdir catatan
cat > catatan/git-dasar.md <<'EOF'
# Git Dasar
Catatan pribadi: tiga area kerja Git — working directory, staging area, dan repository.
EOF
git status
git add catatan/git-dasar.md
git commit -m "docs: tambahkan catatan git dasar"git status akan menampilkan catatan/ sebagai folder yang belum dilacak — sama seperti docs/ sebelumnya — dan commit kelima muncul di git log --oneline setelahnya. Lalu uji .gitignore yang dibuat di awal bagian:
touch draft-ide-baru.md
git statusPerintah touch membuat satu berkas kosong bernama draft-ide-baru.md. Karena namanya berawalan draft-, berkas itu tidak muncul di git status — .gitignore bekerja diam-diam, dan draf boleh tertinggal di folder kerja tanpa pernah tersentuh riwayat.
Repository kini punya ritme: berkas baru, status, periksa, commit. Bagian 3 menguji ritme yang sama di tempat terisolasi — branch fitur fitur/tambah-glosarium — sebelum hasilnya digabungkan kembali ke main.