Repository di Git: apa itu, jenis apa saja yang ada, dan cara kerjanya

Penulis: IT Sectr Diterbitkan: 2026-05-09 Waktu membaca: 8 mnt

Repositori Git — adalah penyimpanan kode sumber proyek, di mana Git melacak setiap perubahan file sepanjang pengembangan. Repositori berisi riwayat lengkap commit, cabang, dan tag, yang memungkinkan pengembang bekerja sama dalam kode. Menurut data Git, 2024, repositori adalah dasar dari setiap sistem kontrol versi dan digunakan dalam jutaan proyek di seluruh dunia.

Poin Utama

  • Repositori Git — adalah direktori proyek dengan folder .git tempat seluruh riwayat perubahan disimpan.
  • Repositori lokal berada di komputer pengembang dan memungkinkan bekerja dengan kode tanpa koneksi internet.
  • Repositori remote dihosting di server GitHub, GitLab, atau Bitbucket dan berfungsi untuk sinkronisasi antar peserta.
  • Git menyimpan data sebagai cuplikan file, bukan sebagai daftar perubahan, yang mempercepat operasi percabangan dan penggabungan.
  • Sistem kontrol versi memecahkan masalah kerja simultan pada satu proyek, mencegah konflik saat penggabungan kode.

Apa itu repositori di Git

Repositori Git — adalah struktur data di mana sistem kontrol versi menyimpan metadata dan objek yang mendeskripsikan riwayat perubahan file proyek. Ketika pengembang menginisialisasi repositori dengan perintah git init, Git membuat folder tersembunyi .git di akar proyek.

Di dalam folder ini terdapat semua objek, referensi, dan file konfigurasi yang diperlukan untuk pengoperasian sistem. Repositori tidak terikat pada lokasi tertentu — pengembang dapat membuatnya secara lokal, lalu menghubungkannya ke server remote.

Git menggunakan model repositori terdistribusi: setiap peserta proyek memiliki salinan lengkap riwayat di komputernya sendiri. Ini berarti sebagian besar operasi — commit, melihat riwayat, membuat cabang — dilakukan secara lokal tanpa mengakses server.

Menurut dokumentasi Git, arsitektur terdistribusi membuat sistem tahan terhadap kegagalan: jika server mati, repositori lokal mana pun dapat menjadi sumber untuk memulihkan riwayat lengkap proyek.

Repositori lokal dan remote

Repositori lokal — adalah salinan proyek di komputer pengembang. Ini berisi seluruh riwayat commit, cabang, dan tag serta memungkinkan menjalankan operasi commit, branch, merge, dan rebase tanpa koneksi jaringan.

Repositori remote dihosting di server dan berfungsi sebagai titik sinkronisasi untuk semua anggota tim. Pengembang mengirim perubahan mereka dengan perintah git push dan mengambil perubahan orang lain dengan perintah git pull.

Koneksi antara repositori lokal dan remote dikonfigurasi melalui remote origin — URL server yang disimpan dalam konfigurasi Git. Satu repositori lokal dapat terhubung ke beberapa repositori remote, yang berguna saat bekerja dengan fork.

Keuntungan utama dari model ini — pengembang dapat bekerja pada kode secara offline, dan menyinkronkan perubahan hanya ketika siap mengirimkan hasil.

Perbedaan antara repositori lokal dan remote

KarakteristikLokalRemote
LokasiDi komputer pengembangDi server (GitHub, GitLab)
Akses tanpa jaringanAkses penuh ke semua operasiTidak tersedia tanpa koneksi
SinkronisasiPush/Pull dengan remoteMenerima push dari lokal
CadanganTidak terlindung dari kehilangan dataDisimpan di server dengan cadangan

Bagaimana Git menyimpan data di repositori

Model penyimpanan Git secara fundamental berbeda dari sistem kontrol versi lainnya. Alih-alih menyimpan daftar perubahan (delta) antar versi, Git menyimpan cuplikan lengkap dari semua file proyek pada saat setiap commit.

Setiap objek di repositori diidentifikasi oleh hash SHA-1 unik sepanjang 40 karakter. Jika konten file tidak berubah antar commit, Git tidak membuat objek baru tetapi menggunakan kembali yang sudah ada — ini menghemat ruang.

Git menggunakan empat jenis objek: blob (konten file), tree (struktur direktori), commit (cuplikan dengan metadata) dan tag (referensi bernama ke commit). Semua objek disimpan di folder .git/objects.

Menurut Git Internals, model objek Git memastikan integritas data: setiap perubahan konten file menghasilkan hash baru, yang membuat perubahan riwayat yang tidak terdeteksi menjadi mustahil.

Struktur folder .git

Folder .git — adalah jantung repositori. Tanpanya, Git tidak dapat melacak perubahan, dan direktori biasa hanya tetap menjadi kumpulan file. Memahami struktur folder ini membantu mendiagnosis masalah dengan repositori.

  • objects/ — semua objek repositori: blob, tree, commit, tag. Disimpan dalam bentuk terkompresi.
  • refs/ — referensi ke commit: heads (cabang), tags (label), remotes (cabang remote).
  • HEAD — file yang menunjuk ke cabang atau commit aktif saat ini.
  • config — pengaturan repositori: URL remote, nama pengguna, email, dan parameter lainnya.
  • index — staging area (indeks), tempat Git menyimpan informasi tentang file yang disiapkan untuk commit.
  • logs/ — log pembaruan referensi (reflog), yang menyimpan riwayat perpindahan HEAD dan cabang.

File HEAD patut mendapat perhatian khusus. Dalam keadaan normal, file ini berisi referensi simbolis ke cabang, misalnya ref: refs/heads/main. Dalam keadaan detached HEAD, ia menunjuk langsung ke commit — ini berarti commit baru tidak akan terikat ke cabang mana pun.

Operasi utama dengan repositori

Bekerja dengan repositori Git mencakup serangkaian operasi dasar yang dilakukan pengembang setiap hari. Setiap operasi mengubah status repositori, menambahkan objek baru atau memindahkan referensi.

  • git init — membuat repositori kosong baru di direktori saat ini. Git membuat folder .git dengan struktur awal.
  • git clone — menyalin repositori remote yang ada ke mesin lokal bersama dengan seluruh riwayat commit.
  • git add — menambahkan perubahan file ke staging area (indeks), mempersiapkannya untuk commit.
  • git commit — membuat cuplikan proyek berdasarkan data dari indeks dan menyimpannya sebagai objek commit baru.
  • git push — mengirim commit baru dari repositori lokal ke repositori remote, memperbarui cabang di server.
  • git pull — mengambil commit baru dari repositori remote dan menggabungkannya dengan cabang lokal saat ini.

Operasi push dan pull — adalah satu-satunya yang memerlukan koneksi ke server remote. Semua operasi lainnya dilakukan sepenuhnya secara lokal, yang memastikan kecepatan kerja tinggi bahkan dengan riwayat yang besar.

Siklus hidup file di repositori

Setiap file di repositori melewati empat status: untracked (tidak dilacak), modified (diubah), staged (disiapkan), dan committed (dikomit). Git hanya melacak file yang secara eksplisit ditambahkan melalui git add atau sudah ada dalam riwayat commit.

Memahami model ini — kunci untuk bekerja secara efisien dengan Git. Pengembang dapat secara selektif menyiapkan hanya sebagian file yang diubah untuk commit, menciptakan commit yang lengkap secara logis dengan deskripsi yang jelas.

Repositori remote biasanya dihosting di platform khusus yang menyediakan antarmuka web, sistem manajemen akses, dan alat tambahan untuk pengembangan kolaboratif.

  • GitHub — platform terbesar dengan lebih dari 100 juta repositori. Menyediakan Actions, Pull Requests, Issues, dan Wiki. Gratis untuk proyek publik.
  • GitLab — platform dengan CI/CD terintegrasi, Container Registry, dan pipeline DevOps bawaan. Tersedia sebagai SaaS dan versi self-hosted.
  • Bitbucket — solusi dari Atlassian dengan integrasi Jira dan Trello. Populer di lingkungan perusahaan karena pengaturan akses yang fleksibel.

Pilihan platform tergantung pada ukuran tim, kebutuhan privasi, dan integrasi yang diperlukan. Untuk pengembangan seluler, GitHub sering dipilih karena dukungan komunitas yang luas dan integrasi dengan alat CI/CD untuk iOS dan Android.

Contoh perintah untuk bekerja dengan repositori

Mari kita pertimbangkan skenario praktis: seorang pengembang mengkloning repositori yang ada, membuat cabang baru, melakukan perubahan, dan mengirimkannya ke server. Setiap perintah menunjukkan cara bekerja dengan berbagai komponen repositori.

bash
# Mengkloning repositori remote
git clone https://github.com/user/mobile-app.git

# Pindah ke direktori proyek
cd mobile-app

# Membuat cabang fitur baru dan beralih ke cabang tersebut
git checkout -b feature/auth

# Memeriksa status file yang dimodifikasi
git status

# Menambahkan semua perubahan ke staging area
git add .

# Membuat commit dengan deskripsi
git commit -m "Add authentication module"

# Mengirim perubahan ke repositori remote
git push origin feature/auth

Perintah git status — salah satu yang paling berguna dalam pekerjaan sehari-hari. Ini menunjukkan file mana yang telah diubah, mana yang siap untuk commit, dan mana yang sama sekali tidak dilacak oleh Git.

Melihat riwayat commit

Untuk menganalisis riwayat repositori, digunakan perintah git log dengan berbagai flag pemformatan. Ini menampilkan kronologi commit, penulisnya, tanggal, dan pengidentifikasi SHA-1.

bash
# Melihat riwayat dengan visualisasi grafik cabang
git log --oneline --graph --all

# Melihat perubahan dalam commit tertentu
git show a1b2c3d

# Membandingkan status saat ini dengan commit terakhir
git diff HEAD

# Melihat riwayat file tertentu
git log --follow src/MainActivity.kt

Flag --graph menampilkan grafik ASCII percabangan, yang sangat berguna di repositori dengan pekerjaan aktif di banyak cabang. Untuk proyek seluler dengan rilis yang sering, grafik visual membantu mengevaluasi struktur pengembangan dengan cepat.

Pertanyaan yang Sering Diajukan

Apa perbedaan repositori dengan proyek?

Repositori — adalah penyimpanan teknis kode dengan riwayat perubahan. Proyek — adalah konsep yang lebih luas yang mencakup repositori, sistem manajemen tugas, dokumentasi, dan proses pengembangan. Satu proyek dapat berisi beberapa repositori.

Bagaimana cara membuat repositori di GitHub?

Buat repositori baru melalui antarmuka web GitHub dengan mengklik tombol New. Tentukan nama, deskripsi, dan tingkat akses. Kemudian klon repositori ke mesin lokal atau hubungkan repositori lokal yang ada melalui git remote add origin.

Bisakah repositori yang dihapus dipulihkan?

Jika repositori remote telah dihapus dari server, tetapi setidaknya satu pengembang memiliki salinan lokal, repositori dapat dipulihkan. Cukup buat repositori remote baru dan jalankan git push --force dari salinan lokal dengan seluruh riwayat.

Apa itu fork repositori?

Fork — adalah salinan repositori orang lain di akun Anda. Anda menerima salinan lengkap riwayat dan dapat membuat perubahan apa pun tanpa mempengaruhi yang asli. Fork digunakan untuk berpartisipasi dalam proyek open-source melalui Pull Request.

Bagaimana cara mengurangi ukuran repositori?

Gunakan git gc untuk mengompresi objek dan menghapus data yang tidak dapat dijangkau. Hapus file besar dari riwayat melalui git filter-branch atau git filter-repo. Untuk proyek dengan file biner, pertimbangkan Git LFS (Large File Storage).

Kesimpulan

  • Repositori Git — adalah penyimpanan kode dengan riwayat perubahan lengkap, di mana setiap commit adalah cuplikan dari semua file proyek pada waktu tertentu.
  • Repositori lokal disimpan di komputer pengembang dan mendukung serangkaian operasi Git lengkap tanpa koneksi jaringan.
  • Repositori remote menyinkronkan kerja tim melalui push dan pull, menyediakan satu sumber kebenaran untuk semua peserta.
  • Folder .git berisi semua informasi layanan: objek, referensi cabang, konfigurasi, dan log operasi reflog.
  • GitHub, GitLab, dan Bitbucket — platform utama untuk menyimpan repositori remote dengan alat CI/CD tambahan.
  • Model objek Git menggunakan hash SHA-1 untuk mengidentifikasi setiap objek, yang menjamin integritas data repositori.
  • Rekomendasi: selalu lakukan commit setidaknya sekali sehari dan sinkronkan dengan repositori remote setelah setiap tahap pekerjaan selesai.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga