Apa Itu Git — Mencatat Perubahan agar Kamu Bisa Kembali

Artikel ini adalah bagian dari kursus Dasar-Dasar Teknologi Informasi, yang membangun dari nol pengetahuan TI praktis yang minimal kamu butuhkan untuk memprogram dan melakukan vibe coding.
Menyimpan dengan menimpa tidak menyisakan keadaan sebelumnya. Diagram mengikuti alurnya, dari meninggalkan catatan lewat commit sampai mengambil titik sebelumnya dari catatan yang menumpuk di dalam repository.

Artikel ini membahas Git.

Git mencatat perubahan file sehingga kamu bisa kembali ke keadaan sebelumnya, dan menempatkan catatan itu di sebuah server membuat orang lain bisa berada di keadaan yang sama.

Catatan yang berjajar di ketiga tempat itu sama, dan server di tengahlah yang menyamakannya.

Apa yang dilakukan Git — meninggalkan catatan, dan membagikannya lewat remote

Mencatat perubahan file titik demi titik sehingga keadaan lama bisa diambil kembali disebut version control.

Tempat catatan itu disimpan adalah repository, repository yang sama yang ditempatkan di sisi server adalah remote repository, dan satu catatan adalah commit.

Layanan paling dikenal untuk menempatkan remote repository adalah GitHub dan GitLab, dan GitHub bukan Git itu sendiri; GitHub adalah tempat untuk menaruh remote repository.

Komputer kamu dan server GitHub
Komputer kamu
Folder my-app
File yang sedang kamu kerjakan
  • app.js dan style.css
  • Menyimpan dengan menimpa mengganti isinya
Repository
  • Commit berjajar dari yang paling lama
  • git commit menambah satu
Server GitHub
Remote repository untuk my-app
  • Commit yang dikirim lewat git push berjajar di sini
  • https://github.com/example/my-app.git adalah tempat itu
  • Bisa dibaca dan ditulis dari komputer lain
Di sebelah kiri adalah komputer kamu, di sebelah kanan server GitHub. Repository di dalam folder my-app dan remote repository di server berada di tempat yang berbeda, dan keduanya menyimpan commit.

Mengirim catatan di komputer kamu ke server disebut push, dan menarik masuk catatan yang ada di server disebut pull.

Karena ada server di tengah, isinya sama kapan pun rekan kerja menariknya.

Kata-kata soal Git yang muncul di instruksi terbagi menjadi tiga jenis.

Kata-kata di instruksi dan operasi Git yang diwakilinya
==="Lakukan commitdulu""Kirim keGitHub""Ambil versiterbaru"CommitPushPullPerubahan app.jstercatatCatatan dikirimke serverMenarik catatandari serverHanya di dalamkomputer kamuKamu → GitHubGitHub → kamu
Setiap baris adalah satu operasi. Dari kiri ke kanan: kata-kata di instruksi, nama operasinya, apa yang terjadi saat itu, dan sejauh mana jangkauannya. Hanya baris paling atas yang selesai sepenuhnya di dalam komputer kamu.

Kolom kiri tetap di dalam komputer kamu, sedangkan kolom tengah dan kanan bertukar dengan GitHub.

Menyimpan dengan menimpa tidak meninggalkan keadaan lama — apa yang dicatat version control

Menyimpan dengan menimpa mengganti isi app.js dengan isi saat ini.

Tidak ada isi lama yang tersisa setelah penggantian itu, jadi sebanyak apa pun kamu menyimpan, kamu tidak bisa kembali ke keadaan sebelumnya.

Yang kamu lakukan sebelum mengubahTempat isi lama beradaSetelah berhenti berjalan
Hanya menyimpan dengan menimpaTidak ada di mana punTidak bisa kembali
Editor dibiarkan terbukaRiwayat undo (hilang saat editor ditutup)Perubahan selama editor terbuka bisa dibatalkan
Sudah menjalankan git commitCatatan di repositoryBisa kembali kapan saja

Hanya kalau kamu sudah melakukan commit, isi lama tetap ada di repository.

Satu-satunya pembeda adalah apakah kamu menjalankan git commit sekali sebelum mengubahnya.

Satu perintah itu menciptakan titik yang bisa kamu tuju kembali.

Hanya commit yang meninggalkan catatan

Menyimpan dengan menimpa mengganti isi lama dengan isi saat ini, dan yang terhapus tidak tersisa di mana pun di komputer.

Commit menambahkan satu catatan berisi app.js apa adanya pada titik itu, tanpa menghapus apa pun, jadi ketika semuanya berhenti berjalan, titik yang bisa kamu tuju kembali hanyalah titik yang sudah kamu commit.

Commit punya dua tahap: pilih perubahan yang akan dicatat, lalu tinggalkan catatannya

Commit terbagi menjadi dua tahap: kamu memilih dulu, lalu mencatat setelahnya.

Tahap kamu memilih dan mendaftarkan perubahan adalah staging (tahap memilih dan mendaftarkan perubahan yang masuk ke dalam commit), dan karena dua tahap ini, ada tiga tempat penyimpanan di dalam folder my-app.

Tiga tempat yang dilewati sebuah perubahan di dalam folder my-app
my-app (folder aplikasi reservasi yang sedang kamu buat)
File yang sedang kamu kerjakan
  • app.js — isi yang sekarang terbuka di editor
  • style.css — file yang menuliskan tampilan layar
  • Menyimpan dengan menimpa mengganti isi di sini
Folder khusus yang dibuat Git
Staging
  • Berisi perubahan yang dipilih lewat git add
  • Kembali kosong saat kamu menjalankan git commit
Repository
  • Commit berjajar dari yang paling lama
  • git commit menambah satu
Bingkai terluar adalah folder my-app. Di bagian atas adalah file yang sekarang terbuka di editor, dan di bawahnya adalah folder khusus yang dibuat Git, yang berisi staging dan repository.

Perubahan berpindah dari atas ke bawah lewat dua langkah: git add dan git commit.

Perubahan pada index.html yang tidak kamu pilih tidak hilang, dan kamu bisa memilihnya lain kali.

Langkah memeriksa sebelum mencatat muncul sebagai tiga baris berikut.

# Periksa file yang sudah kamu ubah
git status

# Pilih dan daftarkan perubahan yang akan dicatat
git add app.js

# Catat perubahan yang dipilih dengan pesan singkat
git commit -m "Tambah layar login"

Menjalankan git status akan menampilkan nama file yang kamu ubah, dan git log menampilkan daftar catatannya.

Kalau kamu menjalankan git commit tanpa menjalankan git add, tidak ada perubahan yang dipilih, jadi tidak ada catatan yang dibuat.

Pilih apa yang akan dicatat sebelum mencatatnya

Commit punya dua tahap: memilih dan mencatat.

git add memilih perubahan yang masuk ke catatan ini dan git commit mengubah hanya yang kamu pilih menjadi satu catatan, jadi kalau kamu lupa tahap memilihnya, tidak ada satu pun catatan yang bertambah.

Repository berada di dalam folder, dengan commit berjajar dari yang paling lama

Folder khusus yang menyimpan repository dibuat pada saat kamu menjalankan git init, yang memulai pencatatan di folder itu.

Setiap kali kamu melakukan commit, catatan di dalamnya bertambah satu.

Commit yang berjajar di dalam repository
Repository (di dalam folder khusus yang dibuat Git)
Commit pertama
  • app.js seperti saat kamu membuat layarnya
  • Tanggal dan waktu serta pesan "Buat layar"
Commit kedua
  • app.js dan style.css seperti saat kamu menambahkan kolom input
  • Tanggal dan waktu serta pesan "Tambah kolom input"
Commit terbaru
  • app.js yang paling baru dicatat
  • Tanggal dan waktu serta pesan "Tambah layar login"
Bingkai terluar adalah repository. Commit di dalamnya berjajar dari atas mulai dari yang paling lama, dan catatan baru tidak menulis ulang commit sebelumnya.

Kembali berarti memilih satu dari catatan yang berjajar di sana dan mengganti app.js yang sedang kamu kerjakan dengan isinya.

Untuk file yang tidak ingin kamu catat, kamu bisa menuliskan namanya di file pengaturan bernama .gitignore di dalam folder itu.

Ini membuat file yang belum pernah dicatat tidak ikut tercatat, dan tidak berpengaruh pada file yang sudah pernah dicatat.

Catatan tidak hilang; catatan berjajar dari yang paling lama

Repository berada di dalam folder khusus yang ada di folder my-app.

Setiap kali kamu melakukan commit catatan bertambah satu, dan catatan sebelumnya tidak pernah ditulis ulang, jadi kembali berarti memilih satu dari catatan yang berjajar di sana dan membuat file saat ini berisi isinya.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Manakah pernyataan yang benar tentang perbedaan antara menyimpan dengan menimpa dan melakukan commit?

Soal 2Commit terbagi menjadi dua tahap. Tahap mana yang datang sebelum catatan ditinggalkan?

Soal 3Operasi mana yang mengirim commit yang tersimpan di repository di komputer kamu ke remote repository di sebuah server?