Kilas Balik 20 Tahun Git – Masih Aneh, Masih Keren
(blog.gitbutler.com)- Git adalah sistem kontrol versi yang dimulai 20 tahun lalu ketika Linus Torvalds membuat commit pertamanya
- Awalnya hanya proyek pribadi sederhana, tetapi kemudian berkembang menjadi sistem kontrol versi yang paling luas digunakan di seluruh dunia
- Penulis adalah salah satu pendiri GitHub, dan telah terlibat sangat dalam dalam perkembangan Git dengan membangun buku dan komunitas terkait Git
- Pada awalnya Git hanyalah alat sederhana untuk mengelola konten direktori, tetapi kini telah menjadi alat inti yang mengubah cara pengembangan perangkat lunak
Filosofi dan Kebutuhan di Balik Git
- Git lahir dari ketidakpuasan komunitas kernel Linux terhadap keterbatasan alat kontrol versi yang ada saat itu
- Cara kolaborasi yang umum waktu itu bersifat terdistribusi dan berbasis lokal, melalui mailing list, tarball, dan file patch
- Karena alat SCM saat itu lambat, tersentralisasi, dan tidak efisien, pendekatan berbasis tarball/patch justru lebih baik
- Ada alat alternatif bernama Bitkeeper, tetapi pengembangan Git dimulai karena masalah lisensi
- Sejak awal Git dirancang bukan sebagai "sistem kontrol versi", melainkan sebagai struktur data untuk menangani patch dan tarball dengan lebih baik
Commit Pertama Git
- Commit pertamanya adalah alat yang sangat dasar untuk melacak konten direktori
- Pada saat itu, alat-alatnya bukan perintah seperti
git commit, melainkan tool basis data tingkat rendah sepertiwrite-tree,commit-tree, dan lainnya - Sejak awal Git sudah memiliki kemampuan berikut:
- Menyimpan working directory ke cache (
update-cache), mengubahnya menjadi objek tree (write-tree), lalu mencatatnya ke basis data - Menyimpan perubahan dalam bentuk commit (
commit-tree) untuk membuat riwayat - Membaca dan membandingkan objek basis data dengan
cat-file,read-tree,show-diff
- Menyimpan working directory ke cache (
- Linus memandang Git hanya sebagai backend "plumbing tool", dan ingin UI-nya dibuat dari luar
Contoh Distribusi Konten dengan Git
- Pada 2005, penulis menggunakan Git di startup bernama Reactrix untuk mendistribusikan konten iklan digital
- Ratusan layar digital masing-masing perlu menerima kombinasi iklan yang berbeda, dan fitur content addressing Git menyelesaikan hal ini secara efisien
- Ini adalah contoh kreatif penggunaan Git bukan untuk mengelola kode, melainkan sebagai alat distribusi konten
- Nick Hengeveld, salah satu kontributor utama proyek Git awal, menambahkan fitur seperti SSL dan transfer HTTP paralel
- Pengalaman ini kemudian menjadi titik awal pembuatan dokumentasi, situs web, dan buku tentang Git, yang akhirnya berlanjut hingga GitHub
Evolusi Perintah Git dan Alat Pengguna
- Pada masa awal, semua perintah Git adalah tool berbasis skrip tingkat rendah dan sangat berbeda dari sekarang
- Perintah seperti
git log,git rebase, dangit commitjuga awalnya hanyalah skrip shell sederhana, lalu berkembang sedikit demi sedikit hingga menjadi format yang kita kenal sekarang
Versi Awal git log
git logadalah skrip sederhana dalam bentukgit-rev-list --pretty HEAD | lessrev-listadalah tool untuk menampilkan ID commit yang masih ada hingga sekarang
Munculnya git rebase
- Konsep
rebaselahir dari percakapan email antara Linus dan Junio Hamano pada 2005 - Cara kerja Junio adalah membuang HEAD yang lama lalu melanjutkan pekerjaan berdasarkan HEAD yang baru, dan ini disebut sebagai "rebase"
- Dari sinilah berkembang perintah
git rebaseyang kita kenal sekarang
Asal-usul Octocat
- Octocat, simbol GitHub, mendapat ide dari strategi "octopus merge" di Git
- Strategi untuk menggabungkan beberapa branch sekaligus disebut "octopus", dan pada masa awal GitHub kata itu menginspirasi lahirnya karakter Octocat
Masa Kini dan Masa Depan Git
- Penulis masih memanfaatkan Git sesuai tujuan aslinya sebagai "stupid content tracker"
- Proyek GitButler memanfaatkan Git untuk melacak dan mencatat riwayat proyek
- Git tetap menjadi sistem pelacakan konten dan sistem terdistribusi yang kuat, dan ke depan masih mungkin dimanfaatkan dengan berbagai cara
- Selamat ulang tahun, Git. Masih aneh, masih keren
6 komentar
Selamat ulang tahun ke-20 untuk Git.
Selamat!
Selamat ulang tahun. Dengarkan baik-baik kata-kata orang tua dan semoga panjang umur serta selalu sehat.
Selamat ulang tahun ^^
Ini postingan yang anehnya bikin semangat ya.
Opini Hacker News
Cerita tentang asal-usul Git cenderung menggambarkan Linus seolah seorang nabi
Sekitar tahun 2002, ada gagasan untuk memberi tag kode hash unik pada tiap bagian proyek
Mulai menggunakan Git sebagai alternatif ClearCase
Mengejutkan bahwa Git baru berusia 20 tahun
Menarik mengetahui konteks sejarahnya
Ingin membuat alat basis data riwayat tarball yang efisien, dan awalnya tidak berniat membuat sistem kontrol versi
Baru tahu bahwa commit bisa ditandatangani dengan kunci ssh
Berterima kasih atas artikel yang bermanfaat, dan merekomendasikan repositori yang memuat pengantar tentang struktur internal Git
Menarik bahwa ada pendapat ingin menulis posting blog tentang kolaborasi lewat mailing list
Di antara banyak sistem source control, Git punya usability terburuk tetapi tetap menjadi sistem favorit saya