Berikut penjelasan lengkap tentang cara kerja Git dan GitHub, mulai dari pembuatan repository hingga push dan pull, termasuk troubleshooting masalah umum.
Panduan Lengkap Git & GitHub untuk Pemula
Git adalah sistem version control yang digunakan untuk melacak perubahan kode, sementara GitHub adalah layanan berbasis cloud untuk menyimpan dan mengelola repository Git. Dalam panduan ini, kita akan membahas dasar-dasar Git, dari pembuatan repository hingga push dan pull ke GitHub, serta mengatasi error yang sering terjadi.
1. Instalasi Git
Pastikan Git sudah terinstall di komputer dengan menjalankan perintah berikut:
git --version
Jika belum terinstall, bisa download dari https://git-scm.com/downloads dan ikuti petunjuk instalasinya.
2. Membuat Repository Git
Repository adalah tempat penyimpanan kode dan riwayat perubahan. Untuk membuat repository baru:
a) Membuat Repository Baru di GitHub
1. Masuk ke GitHub dan login.
2. Klik tombol New Repository atau buka: https://github.com/new
3. Masukkan nama repository → Pilih Public atau Private → Klik Create Repository
4. Akan muncul halaman dengan instruksi untuk menghubungkan GitHub dengan lokal.
b) Inisialisasi Repository di Lokal
Jika ingin membuat repository di komputer:
mkdir nama-proyek # Buat folder proyek
cd nama-proyek # Masuk ke dalam folder
git init # Inisialisasi repository
Perintah ini akan membuat folder .git yang menyimpan metadata repository.
3. Menambahkan File ke Repository (Staging & Commit)
Git memiliki dua tahap sebelum file benar-benar tersimpan di repository:
• Staging Area: Tempat file yang akan dicatat perubahan sebelum dikomit.
• Commit: Menyimpan perubahan secara lokal dalam repository.
a) Mengecek Status Repository
Sebelum menambahkan file, cek status repository:
git status
Jika ada file baru atau berubah, statusnya akan berwarna merah.
b) Menambahkan File ke Staging
Tambahkan file ke staging dengan perintah:
git add nama_file
Atau, jika ingin menambahkan semua file:
git add .
c) Menyimpan Perubahan dengan Commit
Setelah file ditambahkan ke staging, commit perubahan dengan:
git commit -m "Pesan commit yang jelas"
4. Menghubungkan Repository Lokal dengan GitHub
Agar repository lokal terhubung dengan GitHub, jalankan:
git remote add origin https://github.com/username/nama-repo.git
Cek apakah remote sudah terhubung:
git remote -v
Jika belum benar, bisa dihapus dan ditambahkan ulang:
git remote remove origin
git remote add origin https://github.com/username/nama-repo.git
5. Push: Mengunggah Perubahan ke GitHub
Untuk mengunggah commit ke GitHub:
git push origin main
Jika pertama kali push, gunakan:
git push -u origin main
Jika berhasil, perubahan akan muncul di GitHub.
6. Pull: Mengambil Perubahan dari GitHub
Jika ada perubahan terbaru di GitHub yang belum ada di lokal:
git pull origin main
Gunakan pull sebelum mulai bekerja agar kode selalu up-to-date.
7. Mengatasi Error Umum di Git
1) Error: Repository Not Found
fatal: repository 'https://github.com/user/repo.git/' not found
Solusi:
• Cek URL remote dengan:
git remote -v
• Jika salah, hapus dan tambahkan ulang remote:
git remote remove origin
git remote add origin https://github.com/username/repo.git
2) Error: Updates Were Rejected Because the Remote Contains Work That You Do Not Have Locally
error: failed to push some refs to 'https://github.com/username/repo.git'
hint: Updates were rejected because the remote contains work that you do not have locally.
Solusi:
• Tarik perubahan terbaru sebelum push:
git pull origin main --rebase
• Jika terjadi konflik, selesaikan dulu dengan git merge.
3) Error: Cannot Pull with Rebase – You Have Unstaged Changes
error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.
Solusi:
• Simpan perubahan sementara:
git stash
• Lalu lakukan pull:
git pull origin main --rebase
• Kembalikan perubahan yang disimpan:
git stash pop
4) Error: Submodule Detected – File Berwarna Biru di GitHub
warning: adding embedded git repository: wabot (contoh nama folder)
fatal: no submodule mapping found in .gitmodules for path 'wabot'
Penyebab:
• Direktori wabot/ adalah repository Git sendiri sebelum di-add ke repo utama, sehingga dianggap sebagai submodule.
Solusi:
• Hapus tracking submodule tanpa menghapus file:
git rm --cached wabot
• Pastikan folder wabot/ bukan repo terpisah:
rm -rf wabot/.git
• Tambahkan ulang sebagai folder biasa:
git add wabot/
git commit -m "Menambahkan ulang folder wabot tanpa submodule"
git push origin main
Kesimpulan
Git adalah alat powerful untuk version control. Dengan memahami dasar-dasar seperti staging, commit, push, dan pull, serta mengatasi error umum, workflow pengelolaan kode akan lebih lancar.
Masih bingung ?, kita analogikan GitHub adalah lemari
Cara Kerja Git & GitHub: Ibarat Lemari dan Laci Arsip
Bayangkan Git dan GitHub itu seperti lemari arsip tempat menyimpan dokumen kerja. Nah, kalau Git itu sistem pengaturannya, sedangkan GitHub adalah tempat penyimpanannya di cloud.
Kita akan bahas konsep Git dan GitHub dari nol dengan analogi ini supaya lebih gampang dipahami.
1. Git = Lemari Arsip Pribadi
Saat kerja di kantor, pasti kita butuh lemari untuk menyimpan dokumen supaya gak berantakan. Nah, Git itu ibarat lemari pribadi kita yang bisa menyimpan versi-versi dokumen yang sudah dikerjakan.
Sebelum bisa dipakai, kita harus beli lemari dulu alias membuat repository.
Buat Lemari (Inisialisasi Repository)
git init
Ini sama aja kayak beli lemari baru dan taruh di kantor kita. Sekarang kita bisa mulai masukin dokumen ke dalamnya.
2. Staging: Taruh Dokumen di Laci
Setelah punya lemari, kita bisa naruh dokumen di laci khusus sebelum diarsipkan.
Misalnya kita bikin file baru proposal.docx, lalu cek apakah file ini sudah masuk dalam daftar arsip:
git status
Kalau file belum masuk laci, kita harus memasukkan dokumen ke laci sebelum diarsipkan:
git add proposal.docx
Atau kalau mau masukin semua file dalam satu waktu:
git add .
Sekarang dokumen udah di dalam laci, siap untuk diarsipkan.
3. Commit: Mengarsipkan Dokumen
Dokumen yang sudah di laci belum benar-benar aman, jadi kita perlu mengarsipkannya secara resmi di lemari dengan menempelkan catatan.
Caranya:
git commit -m "Menambahkan proposal proyek"
Nah, sekarang dokumen sudah aman tersimpan di lemari dan bisa kita akses kapan pun.
4. GitHub = Gudang Arsip Pusat
Kalau lemari tadi hanya ada di kantor kita, gimana kalau ada tim lain yang butuh dokumennya? Di sinilah GitHub berperan sebagai gudang arsip pusat yang bisa diakses dari mana saja.
Sebelum bisa mengirim dokumen ke gudang ini, kita harus konek dulu ke server GitHub:
git remote add origin https://github.com/user/proyek.git
Lalu cek apakah lemari kita sudah terhubung ke gudang pusat:
git remote -v
5. Push: Mengirim Dokumen ke Gudang GitHub
Setelah semuanya siap, kita kirim dokumen ke gudang GitHub supaya bisa diakses dari mana saja:
git push origin main
Sekarang, dokumen kita ada di gudang arsip pusat di GitHub, dan bisa dilihat oleh tim lain.
6. Pull: Mengambil Dokumen dari Gudang
Kalau ada anggota tim yang mengupdate dokumen di gudang, kita bisa mengambil dokumen terbaru dari GitHub:
git pull origin main
Ini ibarat ambil dokumen dari gudang untuk diperbarui di lemari kita.
7. Troubleshooting (Masalah Umum di GitHub)
🛑 1. Gagal Push: Gudang Sudah Berisi Dokumen Baru
error: failed to push some refs to 'https://github.com/user/repo.git'
Kenapa?
Ada orang lain yang sudah menyimpan dokumen baru di gudang sebelum kita.
Solusi:
Ambil dulu dokumen terbaru dari gudang sebelum push:
git pull origin main --rebase
git push origin main
🛑 2. File di GitHub Berwarna Biru dan Tidak Bisa Dibuka (Submodule)
warning: adding embedded git repository: folder_x
fatal: no submodule mapping found in .gitmodules for path 'folder_x'
Kenapa?
Git menganggap folder ini sebagai repository terpisah (submodule).
Solusi:
Hapus tracking submodule tanpa menghapus file:
git rm --cached folder_x
rm -rf folder_x/.git
git add folder_x
git commit -m "Menambahkan ulang folder_x tanpa submodule"
git push origin main
Sekarang folder bisa dibuka di GitHub seperti biasa.
Kesimpulan
• Git itu ibarat lemari arsip pribadi, tempat kita menyimpan versi dokumen.
• GitHub adalah gudang arsip pusat, tempat menyimpan dokumen yang bisa diakses tim.
• Staging = Taruh di laci, Commit = Arsipkan di lemari, Push = Kirim ke gudang GitHub.
• Pull = Ambil dokumen terbaru dari gudang GitHub.
• Kalau gagal push, pastikan sudah mengambil dokumen terbaru dulu.
Dengan cara ini, kita bisa mengelola kode atau dokumen dengan rapi, aman, dan bisa diakses dari mana saja. 🚀