XI PPLG
git version control
Diperbarui pada 28 April 2026
π Belajar Git & GitHub dari Dasar
Panduan lengkap menggunakan Git dengan GitHub β mulai dari instalasi hingga kolaborasi tim.
π Daftar Isi
- Apa itu Git & GitHub?
- Instalasi & Konfigurasi
- Konsep Dasar Git
- Membuat Repository
- Clone Repository
- Perintah Dasar: Add, Commit, Push
- Pull β Mengambil Perubahan Terbaru
- Branch β Cabang Pengembangan
- Merge β Menggabungkan Branch
- Pull Request di GitHub
- Menangani Konflik
- Perintah Penting Lainnya
- Alur Kerja Tim (Git Flow)
- Cheat Sheet
1. Apa itu Git & GitHub?
Git
Git adalah version control system (VCS) β sebuah alat untuk melacak perubahan kode dari waktu ke waktu. Dengan Git, kamu bisa:
- Melihat riwayat perubahan file
- Kembali ke versi sebelumnya
- Bekerja paralel dengan anggota tim tanpa saling menimpa
GitHub
GitHub adalah platform online yang menyimpan repository Git di cloud. GitHub memudahkan kolaborasi tim dengan fitur seperti Pull Request, Issues, dan Actions.
Git = alatnya (berjalan di komputer lokal)
GitHub = tempatnya (penyimpanan online / remote)
2. Instalasi & Konfigurasi
Instalasi Git
Windows: Download installer dari https://git-scm.com/download/win
macOS:
brew install git
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install git
Verifikasi Instalasi
git --version
# Output: git version 2.x.x
Konfigurasi Awal (WAJIB dilakukan sekali)
Sebelum menggunakan Git, daftarkan identitasmu:
# Set nama pengguna
git config --global user.name "Nama Kamu"
# Set email (gunakan email yang sama dengan akun GitHub)
git config --global user.email "email@example.com"
# Cek konfigurasi
git config --list
3. Konsep Dasar Git
Area Kerja Git
βββββββββββββββββββ git add βββββββββββββββ git commit ββββββββββββββββ
β Working Tree β ββββββββββββββΆβ Staging Areaβ βββββββββββββββΆβ Repository β
β (file di lokal) β β (index) β β (database) β
βββββββββββββββββββ βββββββββββββββ ββββββββββββββββ
β
git push
β
βΌ
βββββββββββββββ
β GitHub β
β (Remote) β
βββββββββββββββ
| Area | Keterangan |
|---|---|
| Working Tree | Folder proyekmu saat ini |
| Staging Area | File yang sudah disiapkan untuk di-commit |
| Repository | Database Git yang menyimpan semua riwayat |
| Remote | Repository di GitHub (online) |
Status File
| Status | Arti |
|---|---|
Untracked | File baru, belum dikenal Git |
Modified | File sudah diubah tapi belum di-stage |
Staged | File siap untuk di-commit |
Committed | File sudah tersimpan di repository lokal |
4. Membuat Repository
Cara 1: Buat di GitHub dulu (Direkomendasikan)
- Login ke github.com
- Klik tombol "New" atau "+" β "New repository"
- Isi nama repository, deskripsi, pilih Public/Private
- Centang "Add a README file"
- Klik "Create repository"
Cara 2: Inisialisasi dari Lokal
# Masuk ke folder proyek
cd nama-proyek
# Inisialisasi repository Git
git init
# Hubungkan ke GitHub remote
git remote add origin https://github.com/username/nama-repo.git
# Push pertama kali
git push -u origin main
5. Clone Repository
Clone = mengunduh seluruh repository dari GitHub ke komputer lokal.
Dasar Clone
git clone https://github.com/username/nama-repo.git
Ini akan membuat folder baru dengan nama repository secara otomatis.
Clone ke Folder Tertentu
git clone https://github.com/username/nama-repo.git nama-folder-baru
Clone Branch Tertentu
git clone -b nama-branch https://github.com/username/nama-repo.git
Setelah Clone
# Masuk ke folder hasil clone
cd nama-repo
# Cek remote yang terhubung
git remote -v
# Output:
# origin https://github.com/username/nama-repo.git (fetch)
# origin https://github.com/username/nama-repo.git (push)
6. Perintah Dasar: Add, Commit, Push
git status β Cek Kondisi File
git status
Selalu jalankan ini untuk melihat apa yang berubah sebelum add/commit.
git add β Siapkan File ke Staging
# Tambahkan satu file
git add nama-file.txt
# Tambahkan beberapa file
git add file1.js file2.css
# Tambahkan semua file yang berubah
git add .
# Tambahkan semua file dengan ekstensi tertentu
git add *.js
git commit β Simpan Perubahan
# Commit dengan pesan singkat
git commit -m "Pesan commit yang jelas"
# Contoh pesan commit yang baik:
git commit -m "feat: tambah fitur login dengan Google"
git commit -m "fix: perbaiki bug pada halaman checkout"
git commit -m "docs: update README instalasi"
π‘ Tips: Buat pesan commit yang deskriptif! Hindari pesan seperti "update" atau "fix bug" saja.
git push β Upload ke GitHub
# Push ke branch saat ini
git push origin main
# Push pertama kali (set upstream)
git push -u origin main
# Setelah set upstream, cukup ketik:
git push
Alur Lengkap
# 1. Cek status
git status
# 2. Tambahkan perubahan
git add .
# 3. Commit
git commit -m "feat: tambah halaman about"
# 4. Push ke GitHub
git push origin main
7. Pull β Mengambil Perubahan Terbaru
Pull = mengunduh perubahan terbaru dari GitHub ke lokal.
# Pull dari branch saat ini
git pull origin main
# Pull singkat (jika sudah set upstream)
git pull
git fetch vs git pull
| Perintah | Keterangan |
|---|---|
git fetch | Unduh perubahan dari remote, tapi TIDAK otomatis merge |
git pull | Unduh perubahan dan langsung merge ke branch lokal |
# Fetch dulu, lihat perubahannya, baru merge manual
git fetch origin
git diff main origin/main
git merge origin/main
# Atau langsung pull (fetch + merge sekaligus)
git pull origin main
β οΈ Kebiasaan baik: Selalu
git pulldulu sebelum mulai coding, agar kode tetap sinkron dengan tim.
8. Branch β Cabang Pengembangan
Branch memungkinkan kamu bekerja pada fitur baru tanpa mengganggu kode utama (main).
main βββββββββββββββββββββββββββ (production)
\ /
feature/login βββββββββββββββββββ (pengembangan fitur)
Perintah Branch
# Lihat semua branch (lokal)
git branch
# Lihat semua branch (termasuk remote)
git branch -a
# Buat branch baru
git branch nama-branch
# Pindah ke branch lain
git checkout nama-branch
# Buat branch baru SEKALIGUS pindah (cara cepat)
git checkout -b nama-branch
# Cara modern (Git versi baru)
git switch -c nama-branch
# Hapus branch (lokal)
git branch -d nama-branch
# Hapus branch di GitHub (remote)
git push origin --delete nama-branch
Contoh Alur Branch
# 1. Pastikan di branch main dan update
git checkout main
git pull origin main
# 2. Buat branch baru untuk fitur
git checkout -b feature/halaman-login
# 3. Coding... lalu add & commit
git add .
git commit -m "feat: tambah form login"
# 4. Push branch ke GitHub
git push origin feature/halaman-login
Konvensi Penamaan Branch
main β kode production
develop β kode pengembangan utama
feature/xxx β fitur baru
fix/xxx β perbaikan bug
hotfix/xxx β perbaikan mendesak di production
release/v1.0 β persiapan rilis
9. Merge β Menggabungkan Branch
Merge = menggabungkan perubahan dari satu branch ke branch lain.
# 1. Pindah ke branch tujuan (misalnya main)
git checkout main
# 2. Merge branch fitur ke main
git merge feature/halaman-login
# 3. Push hasilnya
git push origin main
Jenis Merge
Fast-forward Merge (otomatis jika tidak ada konflik):
Sebelum: main ββββββ
\
feature ββββββ
Sesudah: main ββββββββββββ (langsung maju)
3-way Merge (jika main sudah berubah):
Sebelum: main βββββββββ(A)
\
feature ββββββ(B)
Sesudah: main βββββββββ(A)βββ(B)βββ(merge commit)
10. Pull Request di GitHub
Pull Request (PR) adalah cara yang tepat untuk menggabungkan branch di GitHub β terutama saat bekerja dalam tim. PR memungkinkan review kode sebelum di-merge.
Cara Membuat Pull Request
-
Push branch ke GitHub:
git push origin feature/halaman-login -
Buka repository di GitHub
-
Klik notifikasi "Compare & pull request" yang muncul (atau klik tab Pull requests β New pull request)
-
Pilih:
- base:
main(branch tujuan) - compare:
feature/halaman-login(branch sumber)
- base:
-
Isi judul dan deskripsi PR yang jelas
-
Klik "Create pull request"
-
Tunggu review dari anggota tim
-
Setelah disetujui, klik "Merge pull request"
11. Menangani Konflik
Konflik terjadi ketika dua orang mengubah bagian yang sama dari sebuah file.
Contoh Konflik
<<<<<<< HEAD (perubahan kamu)
console.log("Halo Dunia");
=======
console.log("Hello World");
>>>>>>> feature/terjemahan (perubahan dari branch lain)
Cara Menyelesaikan Konflik
# 1. Cek file yang konflik
git status
# 2. Buka file konflik di editor, pilih salah satu atau gabungkan
# Hapus marker <<<<<<, =======, >>>>>>>
# Simpan file
# 3. Setelah selesai, add file yang sudah diperbaiki
git add nama-file-konflik.js
# 4. Commit hasil penyelesaian konflik
git commit -m "fix: resolve merge conflict di file login"
π‘ Tips: Gunakan VS Code β ia punya tampilan visual untuk menyelesaikan konflik dengan lebih mudah.
12. Perintah Penting Lainnya
git log β Riwayat Commit
# Lihat riwayat commit
git log
# Tampilan ringkas satu baris
git log --oneline
# Tampilan grafis branch
git log --oneline --graph --all
# Lihat 5 commit terakhir
git log -5
git diff β Lihat Perbedaan
# Lihat perubahan yang belum di-stage
git diff
# Lihat perubahan yang sudah di-stage
git diff --staged
# Bandingkan dua branch
git diff main feature/login
git stash β Simpan Sementara
Berguna saat perlu pindah branch tapi belum mau commit.
# Simpan perubahan sementara
git stash
# Lihat daftar stash
git stash list
# Ambil kembali perubahan terbaru
git stash pop
# Ambil stash tertentu
git stash apply stash@{0}
git reset β Batalkan Perubahan
# Batalkan staging (file kembali ke modified)
git reset HEAD nama-file.txt
# Batalkan commit terakhir, perubahan tetap ada
git reset --soft HEAD~1
# Batalkan commit terakhir, perubahan hilang (HATI-HATI!)
git reset --hard HEAD~1
git revert β Batalkan Commit Secara Aman
# Buat commit baru yang membatalkan commit tertentu
git revert abc1234
β οΈ Gunakan
git revert(bukangit reset --hard) jika commit sudah di-push ke GitHub.
.gitignore β Abaikan File Tertentu
Buat file .gitignore di root proyek:
# Dependencies
node_modules/
vendor/
# Environment
.env
.env.local
# Build output
dist/
build/
*.log
# OS files
.DS_Store
Thumbs.db
# Editor
.vscode/
.idea/
13. Alur Kerja Tim (Git Flow)
Berikut adalah alur kerja standar bekerja dalam tim:
# βββ SETIAP HARI / SETIAP MULAI CODING βββββββββββββββββββ
# 1. Pastikan di branch main dan ambil update terbaru
git checkout main
git pull origin main
# 2. Buat branch untuk task/fitur yang dikerjakan
git checkout -b feature/nama-fitur
# βββ SELAMA CODING βββββββββββββββββββββββββββββββββββββββ
# 3. Coding... coding... coding...
# 4. Cek apa yang berubah
git status
git diff
# 5. Simpan ke staging dan commit
git add .
git commit -m "feat: deskripsi perubahan"
# Bisa commit berkali-kali sesuai progress
# βββ SELESAI CODING βββββββββββββββββββββββββββββββββββββββ
# 6. Update dengan main terbaru sebelum push
git pull origin main
# 7. Selesaikan konflik jika ada, lalu push branch
git push origin feature/nama-fitur
# 8. Buat Pull Request di GitHub
# β Minta review dari rekan tim
# β Setelah approved, merge ke main
# 9. Hapus branch yang sudah di-merge
git branch -d feature/nama-fitur
git push origin --delete feature/nama-fitur
14. Cheat Sheet
Perintah Harian
| Perintah | Fungsi |
|---|---|
git status | Cek status file |
git add . | Tambahkan semua perubahan ke staging |
git commit -m "pesan" | Simpan perubahan |
git push | Upload ke GitHub |
git pull | Ambil perubahan dari GitHub |
git log --oneline | Lihat riwayat commit |
Branch
| Perintah | Fungsi |
|---|---|
git branch | Lihat semua branch |
git checkout -b nama | Buat & pindah ke branch baru |
git checkout main | Pindah ke branch main |
git merge nama | Merge branch ke branch aktif |
git branch -d nama | Hapus branch lokal |
Undo / Batalkan
| Perintah | Fungsi |
|---|---|
git restore nama-file | Batalkan perubahan di working tree |
git reset HEAD nama-file | Unstage file |
git reset --soft HEAD~1 | Batalkan commit terakhir (perubahan tetap) |
git revert abc1234 | Buat commit kebalikan (aman untuk remote) |
git stash | Simpan perubahan sementara |
git stash pop | Kembalikan perubahan dari stash |
Remote
| Perintah | Fungsi |
|---|---|
git clone <url> | Clone repository dari GitHub |
git remote -v | Lihat remote yang terhubung |
git remote add origin <url> | Tambah remote |
git push origin main | Push ke branch main |
git pull origin main | Pull dari branch main |
π― Tips & Best Practice
- Commit sering, commit kecil β Jangan tunggu banyak perubahan baru commit.
- Pesan commit yang jelas β Tulis apa yang berubah dan kenapa.
- Selalu pull sebelum push β Hindari konflik dengan update terbaru.
- Jangan commit langsung ke main β Gunakan branch untuk setiap fitur/fix.
- Gunakan
.gitignoreβ Jangan commit file sepertinode_modulesatau.env. - Review sebelum add β Jalankan
git diffsebelumgit addagar tahu apa yang berubah. - Buat PR untuk review β Kode yang direview lebih berkualitas.
Happy coding! π Dibuat untuk belajar Git & GitHub dari nol.