Empat belas chapter sejak awal section ini memperkenalkan perintah satu per satu: membuat repository, memeriksa status, mengisi staging area, mencatat commit, lalu membaca kembali hasilnya. Perintah-perintah itu bukan kumpulan yang berdiri sendiri — di pemakaian sehari-hari, semuanya bergulir menjadi satu lingkaran kerja. Chapter penutup ini merangkainya menjadi satu sesi utuh dari nol: repository baru, dua putaran sunting–status–add–commit, lalu pemeriksaan hasil dengan git log dan git diff — persis urutan yang akan kita jalani setiap hari bekerja dengan Git.
Alur Siklus Kerja #
Sebelum masuk ke latihan, mari lihat bentuk lingkarannya secara keseluruhan:
Empat langkah inti mengalir ke kanan: sunting berkas di working tree, periksa hasilnya dengan git status, pilih perubahan yang siap dengan git add, lalu bekukan dengan git commit. Setelah commit tersimpan, pemeriksaan riwayat — git log, git diff, git show — memutuskan langkah kerja berikutnya, dan lingkaran kembali ke suntingan baru. Satu hari kerja biasanya memuat belasan putaran lingkaran ini.
Menyiapkan Repository Baru #
Latihan memakai repository segar agar tidak membawa sisa perubahan chapter sebelumnya. Kita naik satu tingkat dari latihan-cabang ke direktori induk sandbox, lalu menyiapkan folder baru:
cd ..
mkdir latihan-siklus
cd latihan-siklus
git init -b mainOutput yang Dihasilkan:
Initialized empty Git repository in /home/z/my-project/tutorial-extracted/work/sandbox/dasar-repository/latihan-siklus/.git/Jalur pada keluaran menyesuaikan lokasi direktori komputer masing-masing. Selanjutnya identitas lokal — setiap repository latihan menyimpan identitasnya sendiri, pola yang diperkenalkan chapter Konfigurasi Identitas :
git config user.name "Budi Santoso"
git config user.email "[email protected]"Putaran Pertama: Dua Berkas, Satu Commit #
Sesi kerja dibuka dengan dua berkas — halaman depan proyek dan satu modul program:
printf '# Aplikasi Catatan\n\nAplikasi latihan untuk siklus kerja Git.\n' > README.md
mkdir src
printf 'fitur: mencatat ide harian\n' > src/app.txt
git statusOutput yang Dihasilkan:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
src/
nothing added to commit but untracked files present (use "git add" to track)Dua tanda yang khas repo baru: baris No commits yet menegaskan riwayat masih kosong, dan seluruh isi src/ tampil dipadatkan sebagai satu entri src/ karena belum ada satu pun berkas di dalamnya yang dikenal Git. Kita pilih hanya README.md yang dicatat lebih dulu — modul programnya akan menunggu putaran berikutnya:
git add README.md
git statusOutput yang Dihasilkan:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/README.md kini berlabel new file di keranjang, sementara src/ tetap untracked — seleksi bertahap seperti pada chapter git add
. Perhatikan petunjuk unstagenya berbeda dari biasanya: git rm --cached, bukan git restore --staged.
Commit pertama dicatat dengan tanggal deterministik — pola Course agar hash contoh konsisten antarchapter, lengkap penjelasannya di chapter Repository dan Commit :
GIT_AUTHOR_DATE="2026-10-13T11:00:00+07:00" GIT_COMMITTER_DATE="2026-10-13T11:00:00+07:00" git commit -m "Mulai proyek aplikasi catatan"Output yang Dihasilkan:
[main (root-commit) 81eb535] Mulai proyek aplikasi catatan
1 file changed, 3 insertions(+)
create mode 100644 README.mdTanda (root-commit) hanya muncul pada commit paling pertama sebuah repository — akar dari seluruh riwayatnya. Hash 81eb535 berbeda di mesin pembaca karena dihitung dari isi commit; commit biasa sehari-hari cukup dengan git commit -m "pesan" tanpa variabel tanggal.
Putaran Kedua: Suntingan dan Berkas Baru Sekaligus #
Putaran kedua diawali kerja campuran: memperluas README sekaligus menambah modul kedua di src/:
printf '\n## Rencana\n- menandai ide selesai\n' >> README.md
printf 'utilitas: memformat tanggal\n' > src/util.txt
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
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/
no changes added to commit (use "git add" and/or "git commit -a")Kali ini git status melaporkan kombinasi dua kelompok: README.md tersunting (modified, belum di-stage) dan src/ masih untracked — kini berisi dua berkas yang tak dikenal. Keduanya memang satu tema kerja, jadi kali ini seluruhnya naik ke keranjang:
git add -A
git status -sOutput yang Dihasilkan:
M README.md
A src/app.txt
A src/util.txtFormat pendek membaca cepat: M berarti suntingan README sudah di-stage, A berarti kedua berkas src/ baru masuk keranjang. Commit keduanya:
GIT_AUTHOR_DATE="2026-10-13T11:10:00+07:00" GIT_COMMITTER_DATE="2026-10-13T11:10:00+07:00" git commit -m "Tambah modul sumber dan perluas README"Output yang Dihasilkan:
[main 11d3996] Tambah modul sumber dan perluas README
3 files changed, 5 insertions(+)
create mode 100644 src/app.txt
create mode 100644 src/util.txtTiga berkas dalam satu commit — src/app.txt yang menunggu sejak putaran pertama ikut tercatat. Baris create mode hanya dimiliki berkas baru; suntingan README diwakili angka insertions.
Memeriksa Hasil Sesi #
Sesi ditutup dengan dua pemeriksaan. Yang pertama: riwayat beserta statistiknya —
git log --oneline --statOutput yang Dihasilkan:
11d3996 Tambah modul sumber dan perluas README
README.md | 3 +++
src/app.txt | 1 +
src/util.txt | 1 +
3 files changed, 5 insertions(+)
81eb535 Mulai proyek aplikasi catatan
README.md | 3 +++
1 file changed, 3 insertions(+)Dua commit dengan statistik masing-masing — ringkasan sesi kerja kita dari awal. Pemeriksaan kedua menampilkan isi commit terakhir, memakai bentuk HEAD~1 yang berarti “satu commit sebelum HEAD”:
git diff HEAD~1Output yang Dihasilkan:
diff --git a/README.md b/README.md
index 65ac230..ccbfc62 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
# Aplikasi Catatan
Aplikasi latihan untuk siklus kerja Git.
+
+## Rencana
+- menandai ide selesai
diff --git a/src/app.txt b/src/app.txt
new file mode 100644
index 0000000..f0f5b03
--- /dev/null
+++ b/src/app.txt
@@ -0,0 +1 @@
+fitur: mencatat ide harian
diff --git a/src/util.txt b/src/util.txt
new file mode 100644
index 0000000..9b966f5
--- /dev/null
+++ b/src/util.txt
@@ -0,0 +1 @@
+utilitas: memformat tanggalFormatnya persis chapter git diff
, dengan dua hal baru: berkas baru ditandai new file mode 100644 dan sisi lamanya ditulis --- /dev/null karena memang belum pernah ada. Riwayat dua commit, working tree bersih — lingkaran siklus kembali ke titik suntingan berikutnya.
Peta Perintah Inti Section #
Seluruh perintah yang dipakai sepanjang section ini dirangkum dalam satu tabel:
| Perintah | Peran dalam siklus | Chapter |
|---|---|---|
git init | Membuat repository baru | git init |
git status | Memeriksa keadaan working tree dan staging area | git status |
git add | Memilih perubahan yang masuk staging area | git add |
git commit | Membekukan staging area menjadi snapshot | git commit |
git log | Menjelajah riwayat commit | git log |
git diff | Membandingkan dua keadaan berkas | git diff |
git show | Membedah satu commit atau satu berkas lama | git show |
git help | Membuka dokumentasi perintah | git help |
Siklus dasar ini cukup untuk bekerja sendiri — dari repository kosong sampai riwayat yang tertata. Namun di antara suntingan dan commit sering kali kita perlu berubah pikiran: membatalkan staging, membuang suntingan yang keliru, atau memulihkan berkas yang terhapus. Semua manuver di fase rawan itu adalah fokus section berikutnya: Melacak Perubahan .