Belajar Git dan GitHub adalah keterampilan fundamental yang wajib dimiliki setiap programmer, baik pemula maupun yang sudah berpengalaman. Git membantu Anda mencatat setiap perubahan kode, kembali ke versi lama saat terjadi kesalahan, dan bekerja bersama banyak orang tanpa saling menimpa pekerjaan. Sementara itu, GitHub menjadi tempat menyimpan, membagikan, dan mengelola proyek secara online. Panduan lengkap ini membahas semuanya secara bertahap: mulai dari konsep dasar, instalasi, perintah penting, branching, penyelesaian konflik, pull request, hingga otomatisasi dengan GitHub Actions.
Daftar Isi
- Apa Itu Git dan GitHub?
- Cara Kerja Git: Tiga Area Utama
- Instalasi dan Konfigurasi Awal
- Membuat Repository dan Perintah Dasar
- Mengenal File .gitignore
- Menghubungkan Proyek ke GitHub
- Branching: Bekerja Tanpa Merusak Kode Utama
- Merge vs Rebase
- Cara Mengatasi Merge Conflict
- Membatalkan Perubahan dengan Aman
- Pull Request dan Kolaborasi di GitHub
- Strategi Branching untuk Tim
- Menulis Commit Message yang Baik
- Tag dan Release
- Pengenalan GitHub Actions
- Cheat Sheet Perintah Git
- Kesalahan Umum Pemula
- Pertanyaan yang Sering Diajukan (FAQ)
- Kesimpulan
Apa Itu Git dan GitHub?
Git adalah sistem kontrol versi terdistribusi (distributed version control system) yang dibuat oleh Linus Torvalds pada tahun 2005. Git berjalan di komputer Anda dan mencatat setiap perubahan pada file proyek, sehingga seluruh riwayat pengembangan tersimpan rapi dan bisa ditelusuri kapan saja.
GitHub adalah platform berbasis web yang menyimpan repository Git di cloud, lengkap dengan fitur kolaborasi seperti pull request, issue tracker, dan otomatisasi. Banyak orang mengira Git dan GitHub adalah hal yang sama, padahal keduanya berbeda:
| Aspek | Git | GitHub |
|---|---|---|
| Jenis | Perangkat lunak (alat baris perintah) | Layanan hosting repository online |
| Lokasi kerja | Komputer lokal Anda | Server cloud |
| Fungsi utama | Mencatat dan mengelola versi kode | Menyimpan, berbagi, dan berkolaborasi |
| Perlu internet? | Tidak | Ya |
| Alternatif | Mercurial, SVN | GitLab, Bitbucket |
Cara Kerja Git: Tiga Area Utama
Sebelum menghafal perintah, pahami dulu bahwa Git bekerja dengan tiga area. Konsep ini menjadi kunci agar Anda tidak bingung saat belajar Git dan GitHub:
- Working Directory: folder proyek tempat Anda mengedit file secara langsung.
- Staging Area (Index): area transit tempat Anda memilih perubahan mana yang akan disimpan pada commit berikutnya.
- Repository (.git): tempat Git menyimpan seluruh riwayat commit secara permanen.
Alurnya: Anda mengedit file, menyiapkannya dengan git add, lalu menyimpannya dengan git commit. Setelah itu, riwayat dikirim ke GitHub dengan git push.
Instalasi dan Konfigurasi Awal
Unduh Git dari situs resmi git-scm.com dan instal sesuai sistem operasi Anda. Setelah selesai, verifikasi dengan perintah berikut:
git --version
Selanjutnya, lakukan konfigurasi awal. Cukup dilakukan sekali untuk seluruh komputer Anda:
git config --global user.name "Nama Anda"
git config --global user.email "email@contoh.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
Perintah terakhir mengatur Visual Studio Code sebagai editor bawaan Git. Anda bisa melewatinya jika memakai editor lain. Untuk memeriksa seluruh konfigurasi, jalankan git config --list.
Membuat Repository dan Perintah Dasar
Masuk ke folder proyek Anda melalui terminal, lalu inisialisasi repository:
mkdir proyek-pertama
cd proyek-pertama
git init
Berikut perintah dasar yang akan Anda gunakan hampir setiap hari:
git status: menampilkan kondisi terkini repository.git add nama-file: memasukkan satu file ke staging area.git add .: memasukkan semua perubahan ke staging area.git commit -m "pesan": menyimpan perubahan sebagai satu commit.git log --oneline: menampilkan riwayat commit secara ringkas.git diff: menampilkan perubahan yang belum di-stage.
Contoh alur kerja lengkap pada proyek baru:
echo "# Proyek Pertama" > README.md
git status
git add README.md
git commit -m "Menambahkan README awal"
git log --oneline
Mengenal File .gitignore
Tidak semua file layak masuk repository. Folder seperti node_modules, file konfigurasi rahasia, dan hasil kompilasi sebaiknya diabaikan. Buat file bernama .gitignore di root proyek:
node_modules/
.env
*.log
dist/
.DS_Store
Pastikan file .env yang berisi password atau API key tidak pernah ikut ter-commit. Jika sudah telanjur masuk riwayat, mengubah kuncinya (rotate key) adalah langkah paling aman, karena menghapus file saja tidak menghapus jejaknya dari riwayat.
Menghubungkan Proyek ke GitHub
Buat akun di GitHub, lalu buat repository baru lewat tombol New. Ada dua cara menghubungkannya: HTTPS dan SSH.
Opsi 1: HTTPS
git remote add origin https://github.com/username/proyek-pertama.git
git push -u origin main
GitHub tidak lagi menerima password akun untuk operasi Git. Gunakan Personal Access Token atau Git Credential Manager sebagai gantinya.
Opsi 2: SSH (Direkomendasikan)
SSH lebih praktis karena Anda tidak perlu memasukkan kredensial setiap kali melakukan push. Buat kunci SSH terlebih dahulu:
ssh-keygen -t ed25519 -C "email@contoh.com"
cat ~/.ssh/id_ed25519.pub
Salin hasil perintah kedua, lalu tambahkan di GitHub → Settings → SSH and GPG keys. Uji koneksi dan hubungkan repository:
ssh -T git@github.com
git remote add origin git@github.com:username/proyek-pertama.git
git push -u origin main
Setelah itu, perintah git push dan git pull cukup dijalankan tanpa tambahan argumen.
Branching: Bekerja Tanpa Merusak Kode Utama
Branch adalah cabang pengembangan yang terpisah dari kode utama. Fitur ini membuat Git sangat kuat, karena Anda bebas bereksperimen tanpa risiko merusak versi yang sudah stabil.
git branch # melihat daftar branch
git switch -c fitur-login # membuat dan pindah ke branch baru
git switch main # kembali ke branch main
git branch -d fitur-login # menghapus branch yang sudah digabung
Biasakan satu branch untuk satu tujuan, misalnya fitur-login, perbaikan-navbar, atau update-dokumentasi. Nama yang deskriptif memudahkan seluruh anggota tim memahami isi branch tanpa harus membukanya.
Merge vs Rebase
Setelah fitur selesai, Anda perlu menggabungkan branch ke kode utama. Git menyediakan dua pendekatan utama:
| Aspek | Merge | Rebase |
|---|---|---|
| Cara kerja | Membuat merge commit yang menyatukan dua riwayat | Memindahkan commit branch ke ujung branch tujuan |
| Bentuk riwayat | Bercabang, apa adanya | Lurus dan bersih |
| Keamanan | Tidak mengubah commit yang ada | Menulis ulang commit, berisiko jika sudah dibagikan |
| Cocok untuk | Menggabungkan fitur ke main | Merapikan branch lokal sebelum digabung |
Contoh penggunaan merge:
git switch main
git merge fitur-login
Contoh penggunaan rebase untuk memperbarui branch fitur dengan perubahan terbaru dari main:
git switch fitur-login
git rebase main
Aturan emas: jangan pernah melakukan rebase pada branch yang sudah di-push dan dipakai orang lain, karena akan mengacaukan riwayat rekan tim Anda.
Cara Mengatasi Merge Conflict
Konflik terjadi ketika dua branch mengubah baris yang sama pada file yang sama, sehingga Git tidak bisa memutuskan versi mana yang dipakai. Jangan panik, ini hal yang wajar. Saat konflik muncul, Git menandai file seperti berikut:
<<<<<<< HEAD
const judul = "Selamat Datang";
=======
const judul = "Halo, Selamat Datang";
>>>>>>> fitur-login
Langkah penyelesaiannya:
- Buka file yang berkonflik dan tentukan versi akhir yang benar.
- Hapus seluruh penanda
<<<<<<<,=======, dan>>>>>>>. - Simpan file, lalu jalankan
git add nama-file. - Selesaikan dengan
git commit(untuk merge) ataugit rebase --continue(untuk rebase).
Jika ingin membatalkan proses penggabungan, gunakan git merge --abort. Editor seperti Visual Studio Code juga menyediakan tampilan visual yang memudahkan pemilihan versi.
Membatalkan Perubahan dengan Aman
Salah satu alasan terbesar orang belajar Git dan GitHub adalah kemampuan membatalkan kesalahan. Pilih perintah sesuai situasinya:
| Situasi | Perintah |
|---|---|
| Membuang perubahan file yang belum di-stage | git restore nama-file |
| Mengeluarkan file dari staging area | git restore --staged nama-file |
| Memperbaiki pesan atau isi commit terakhir | git commit --amend |
| Membatalkan commit terakhir, perubahan tetap ada | git reset --soft HEAD~1 |
| Membatalkan commit yang sudah di-push (aman) | git revert <hash-commit> |
| Menyimpan pekerjaan sementara | git stash lalu git stash pop |
Perhatikan perbedaan reset dan revert. Perintah reset menulis ulang riwayat, sehingga cocok untuk commit lokal. Sebaliknya, revert membuat commit baru yang membatalkan commit lama, sehingga aman untuk riwayat yang sudah dibagikan. Hindari git reset --hard kecuali Anda yakin, karena perintah ini menghapus perubahan secara permanen.
Pull Request dan Kolaborasi di GitHub
Pull request (PR) adalah permintaan untuk menggabungkan perubahan dari satu branch ke branch lain, disertai ruang diskusi dan peninjauan kode (code review). Berikut alur kerja yang umum dipakai tim:
- Buat branch baru dari
mainuntuk fitur yang akan dikerjakan. - Lakukan commit secara berkala, lalu push branch:
git push -u origin fitur-login. - Buka GitHub, lalu klik Compare & pull request.
- Tulis judul dan deskripsi yang menjelaskan apa yang berubah dan alasannya.
- Minta rekan tim meninjau kode, lalu perbaiki jika ada masukan.
- Setelah disetujui, gabungkan dengan Merge pull request.
Untuk berkontribusi ke proyek open source milik orang lain, gunakan alur fork: salin repository ke akun Anda lewat tombol Fork, kerjakan perubahan di salinan tersebut, lalu ajukan pull request ke repository asli. Ini cara terbaik membangun portofolio sekaligus belajar dari kode orang lain.
Strategi Branching untuk Tim
Ketika tim membesar, diperlukan aturan main yang jelas. Dua strategi yang paling populer adalah sebagai berikut:
| Aspek | GitHub Flow | Git Flow |
|---|---|---|
| Branch utama | Hanya main | main dan develop |
| Branch pendukung | Branch fitur singkat | feature, release, hotfix |
| Kompleksitas | Sederhana | Lebih kompleks |
| Cocok untuk | Web app, rilis berkelanjutan | Produk dengan jadwal rilis terstruktur |
Bagi pemula dan tim kecil, GitHub Flow hampir selalu menjadi pilihan terbaik karena mudah dipahami dan minim aturan.
Menulis Commit Message yang Baik
Commit message yang jelas sangat membantu saat Anda atau rekan tim menelusuri riwayat proyek berbulan-bulan kemudian. Banyak tim memakai format Conventional Commits:
feat: menambahkan halaman login
fix: memperbaiki validasi email pada form daftar
docs: memperbarui panduan instalasi di README
refactor: merapikan fungsi perhitungan total
chore: memperbarui dependensi
Beberapa kebiasaan baik lainnya: tulis dalam kalimat perintah yang singkat, batasi baris pertama sekitar 50 karakter, dan satu commit sebaiknya hanya memuat satu perubahan logis.
Tag dan Release
Tag berfungsi menandai titik penting dalam riwayat, biasanya untuk versi rilis. Gunakan penomoran semantik seperti v1.0.0:
git tag -a v1.0.0 -m "Rilis stabil pertama"
git push origin v1.0.0
Di GitHub, tag tersebut dapat dijadikan Release lengkap dengan catatan perubahan dan file unduhan.
Pengenalan GitHub Actions
GitHub Actions adalah fitur otomatisasi yang menjalankan tugas tertentu setiap kali ada kejadian di repository, misalnya menjalankan pengujian otomatis setiap kali ada push atau pull request. Konsep ini dikenal sebagai Continuous Integration (CI).
Buat file .github/workflows/ci.yml di proyek Anda. Contoh berikut untuk proyek Node.js:
name: CIon:
push:
branches: [ main ]
pull_request:
branches: [ main ]jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
Setiap kali Anda push atau membuka pull request, GitHub akan menjalankan langkah-langkah tersebut secara otomatis dan menampilkan hasilnya sebagai tanda centang hijau atau silang merah. Dokumentasi lengkapnya tersedia di docs.github.com.
Cheat Sheet Perintah Git
| Kategori | Perintah | Fungsi |
|---|---|---|
| Memulai | git init | Membuat repository baru |
| Memulai | git clone <url> | Menyalin repository dari GitHub |
| Harian | git add . | Menyiapkan semua perubahan |
| Harian | git commit -m "pesan" | Menyimpan perubahan |
| Sinkronisasi | git pull | Mengambil dan menggabungkan perubahan dari GitHub |
| Sinkronisasi | git push | Mengirim commit ke GitHub |
| Branch | git switch -c nama | Membuat dan pindah branch |
| Branch | git merge nama | Menggabungkan branch |
| Riwayat | git log --oneline | Melihat riwayat ringkas |
| Darurat | git stash | Menyimpan pekerjaan sementara |
Kesalahan Umum Pemula
- Commit terlalu besar: menggabungkan banyak perubahan dalam satu commit membuat riwayat sulit dibaca dan sulit dibatalkan.
- Bekerja langsung di main: selalu buat branch terpisah untuk setiap fitur atau perbaikan.
- Lupa melakukan pull: jalankan
git pullsebelum mulai bekerja agar tidak tertinggal dari perubahan rekan tim. - Memakai force push sembarangan:
git push --forcedapat menimpa pekerjaan orang lain. Jika terpaksa, pilih--force-with-lease. - Mengunggah data sensitif: password, token, dan API key tidak boleh masuk repository.
- Pesan commit tidak informatif: hindari pesan seperti “update”, “fix”, atau “asdf”.
Pertanyaan yang Sering Diajukan (FAQ)
Apakah belajar Git dan GitHub sulit untuk pemula?
Tidak, selama dipelajari bertahap. Kuasai dulu alur dasar (add, commit, push), lalu lanjutkan ke branch dan pull request. Dalam satu atau dua minggu latihan rutin, alur dasarnya biasanya sudah terasa natural.
Apakah GitHub gratis?
Ya, GitHub menyediakan paket gratis yang mencakup repository publik dan privat tanpa batas, cukup untuk kebutuhan pelajar dan developer individu.
Perlu belajar Git dulu atau GitHub dulu?
Pelajari Git terlebih dahulu, karena GitHub hanyalah layanan yang dibangun di atas Git. Setelah paham konsep commit dan branch, memakai GitHub akan jauh lebih mudah.
Apakah Git hanya untuk kode program?
Tidak. Git dapat melacak jenis file teks apa pun, seperti dokumentasi, naskah, atau file konfigurasi. Namun, Git paling optimal untuk file berbasis teks.
Bagaimana cara memanfaatkan GitHub untuk portofolio?
Unggah proyek terbaik Anda, tulis README yang rapi berisi deskripsi, teknologi yang dipakai, dan cara menjalankan proyek, lalu sematkan (pin) repository terbaik di profil Anda. Rekruter sering memeriksa profil GitHub saat menilai kandidat.
Kesimpulan
Belajar Git dan GitHub adalah investasi jangka panjang yang manfaatnya terasa di setiap proyek. Anda telah mempelajari konsep tiga area Git, perintah dasar, branching, merge dan rebase, penyelesaian konflik, cara membatalkan perubahan, pull request, strategi tim, hingga otomatisasi dengan GitHub Actions.
Kunci utamanya adalah konsistensi: gunakan Git di setiap proyek, sekecil apa pun, dan jangan ragu bereksperimen karena hampir setiap kesalahan di Git masih bisa diperbaiki.
Punya pertanyaan atau pengalaman seru saat memakai Git? Tulis di kolom komentar, dan pantau terus NgodingDaily untuk tutorial coding berikutnya!
One Reply to “Belajar Git dan GitHub Lengkap: Dari Dasar hingga Kolaborasi”