“Besok aku mulai belajar GitHub.” Kalimat semacam ini terdengar wajar, tetapi memuat satu salah paham yang paling umum di kalangan pemula: mengira Git dan GitHub adalah satu produk. Git adalah alat version control yang berjalan di komputer kita, sedangkan GitHub adalah layanan web yang menampung repositori Git di servernya. Keduanya saling melengkapi, tetapi berdiri di tempat yang berbeda dan lahir dari pihak yang berbeda. Chapter ini meluruskan perbedaan keduanya, memperkenalkan platform hosting selain GitHub, dan menunjukkan bagaimana Git dan GitHub bekerja bersama dalam kerja sehari-hari.

Git: Alat yang Berjalan di Komputer Kita #

Git adalah program command-line interface yang terpasang di komputer kita — alat yang sudah kita kenal sejak chapter Mengenal Git . Seluruh perintah inti seperti git init, git add, git commit, git log, dan git branch dijalankan di terminal dan bekerja penuh tanpa internet, karena riwayat tersimpan di folder .git pada komputer itu sendiri.

Konsekuensinya sederhana: proyek pribadi bisa dikelola seumur hidup dengan Git saja, dari commit pertama hingga rilis terakhir, tanpa satu pun akun layanan internet. Alatnya gratis, sumber terbukanya bisa dipelajari siapa saja, dan versinya dirilis terus-menerus sejak 2005.

GitHub: Layanan Hosting Repositori #

GitHub adalah layanan web yang menyimpan repositori Git di servernya dan menambahkan lapisan kolaborasi di atasnya. Layanan ini diluncurkan tahun 2008 dan diakuisisi Microsoft pada 2018. Fitur yang GitHub tambahkan di atas Git — dan menjadi daya tarik utamanya — antara lain:

  • Antarmuka web untuk menelusuri kode dan riwayat tanpa terminal.
  • Pull request untuk mengusulkan serta meninjau perubahan sebelum digabung, sebagaimana didokumentasikan pada dokumentasi GitHub .
  • Issues dan discussions untuk mencatat tugas, laporan galat, dan diskusi.
  • Fork — menyalin repositori milik orang lain ke akun kita sendiri untuk berkontribusi.
  • Integrasi otomasi seperti CI untuk menguji kode setiap ada perubahan.

Perhatikan polanya: semua fitur di atas adalah fitur platform, bukan perintah Git. Fork dan pull request, misalnya, tidak ada di dalam program Git.

Perbandingan Singkat #

AspekGitGitHub
Apa ituProgram version control berbasis CLILayanan hosting repositori + kolaborasi web
Lahir2005, ciptaan Linus Torvalds2008, diakuisisi Microsoft pada 2018
Berjalan diKomputer kita sendiriServer milik layanan
Butuh internetTidak — mayoritas operasi lokalYa, untuk mengakses fitur web dan sinkronisasi
AntarmukaTerminalPeramban web, API, aplikasi
Bisa berdiri sendiriGit tanpa GitHub wajar dipakaiGitHub tanpa Git tidak ada — layanannya dibangun di atas Git

Baris terakhir tabel itulah ringkasan paling ringkas hubungan keduanya: Git tanpa GitHub wajar, GitHub tanpa Git tidak ada. GitHub menyimpan repositori Git dan menambahkan fitur di atasnya, sehingga keterampilan Git selalu menjadi fondasi berapa pun platform yang kita pilih.

Platform Selain GitHub #

GitHub bukan satu-satunya tempat menampung repositori Git. Alternatif utamanya:

PlatformPenyelenggaraKekhasan
GitLabGitLab Inc.Tersedia edisi komunitas yang bisa dijalankan sendiri di server internal
BitbucketAtlassianTerikat erat dengan alat manajemen tim Atlassian
CodebergCodeberg e.V.Nirlaba asal Jerman yang berfokus pada proyek open source

Keempat platform di atas berbicara bahasa yang sama: repositori Git. Pindah dari satu ke yang lain tidak mengharuskan mempelajari ulang Git, karena sinkronisasi tetap memakai perintah Git seperti git push dan git pull. Perbandingan mendalam tiap platform dibahas pada section Git Hosting Platforms .

Keduanya Bekerja Bersama #

Alur kerja harian yang menggabungkan keduanya berbentuk siklus: kita menyunting berkas dan membuat commit secara lokal dengan Git, lalu saat waktunya berbagi, git push mengirim commit ke repositori di GitHub. Sebaliknya, git pull mengambil commit orang lain ke komputer kita. Setelah itu, penggabungan hasil kerja tim dapat dikawal lewat pull request di sisi GitHub.

Pembagian perannya jelas: pencatatan riwayat sepenuhnya ditangani Git di komputer kita; pertukaran riwayat dilakukan Git lewat jaringan; peninjauan dan koordinasi tim dilakukan fitur platform. Konsep repositori jarak jauu (remote) di balik push dan pull ini dibedah pada section Remote Repository .

Kita kini tahu Git tetap berfungsi penuh tanpa platform mana pun. Penyebabnya adalah sifat terdistribusi yang melekat pada rancangan Git — setiap salinan repositori adalah repositori yang utuh. Chapter berikutnya membedah konsekuensi desain tersebut. Lanjut ke Distributed Version Control .