← Kembali ke daftar Materi

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

  1. Apa itu Git & GitHub?
  2. Instalasi & Konfigurasi
  3. Konsep Dasar Git
  4. Membuat Repository
  5. Clone Repository
  6. Perintah Dasar: Add, Commit, Push
  7. Pull β€” Mengambil Perubahan Terbaru
  8. Branch β€” Cabang Pengembangan
  9. Merge β€” Menggabungkan Branch
  10. Pull Request di GitHub
  11. Menangani Konflik
  12. Perintah Penting Lainnya
  13. Alur Kerja Tim (Git Flow)
  14. 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)   β”‚
                                                                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
AreaKeterangan
Working TreeFolder proyekmu saat ini
Staging AreaFile yang sudah disiapkan untuk di-commit
RepositoryDatabase Git yang menyimpan semua riwayat
RemoteRepository di GitHub (online)

Status File

StatusArti
UntrackedFile baru, belum dikenal Git
ModifiedFile sudah diubah tapi belum di-stage
StagedFile siap untuk di-commit
CommittedFile sudah tersimpan di repository lokal

4. Membuat Repository

Cara 1: Buat di GitHub dulu (Direkomendasikan)

  1. Login ke github.com
  2. Klik tombol "New" atau "+" β†’ "New repository"
  3. Isi nama repository, deskripsi, pilih Public/Private
  4. Centang "Add a README file"
  5. 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

PerintahKeterangan
git fetchUnduh perubahan dari remote, tapi TIDAK otomatis merge
git pullUnduh 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 pull dulu 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

  1. Push branch ke GitHub:

    git push origin feature/halaman-login
    
  2. Buka repository di GitHub

  3. Klik notifikasi "Compare & pull request" yang muncul (atau klik tab Pull requests β†’ New pull request)

  4. Pilih:

    • base: main (branch tujuan)
    • compare: feature/halaman-login (branch sumber)
  5. Isi judul dan deskripsi PR yang jelas

  6. Klik "Create pull request"

  7. Tunggu review dari anggota tim

  8. 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 (bukan git 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

PerintahFungsi
git statusCek status file
git add .Tambahkan semua perubahan ke staging
git commit -m "pesan"Simpan perubahan
git pushUpload ke GitHub
git pullAmbil perubahan dari GitHub
git log --onelineLihat riwayat commit

Branch

PerintahFungsi
git branchLihat semua branch
git checkout -b namaBuat & pindah ke branch baru
git checkout mainPindah ke branch main
git merge namaMerge branch ke branch aktif
git branch -d namaHapus branch lokal

Undo / Batalkan

PerintahFungsi
git restore nama-fileBatalkan perubahan di working tree
git reset HEAD nama-fileUnstage file
git reset --soft HEAD~1Batalkan commit terakhir (perubahan tetap)
git revert abc1234Buat commit kebalikan (aman untuk remote)
git stashSimpan perubahan sementara
git stash popKembalikan perubahan dari stash

Remote

PerintahFungsi
git clone <url>Clone repository dari GitHub
git remote -vLihat remote yang terhubung
git remote add origin <url>Tambah remote
git push origin mainPush ke branch main
git pull origin mainPull dari branch main

🎯 Tips & Best Practice

  1. Commit sering, commit kecil β€” Jangan tunggu banyak perubahan baru commit.
  2. Pesan commit yang jelas β€” Tulis apa yang berubah dan kenapa.
  3. Selalu pull sebelum push β€” Hindari konflik dengan update terbaru.
  4. Jangan commit langsung ke main β€” Gunakan branch untuk setiap fitur/fix.
  5. Gunakan .gitignore β€” Jangan commit file seperti node_modules atau .env.
  6. Review sebelum add β€” Jalankan git diff sebelum git add agar tahu apa yang berubah.
  7. Buat PR untuk review β€” Kode yang direview lebih berkualitas.

Happy coding! πŸš€ Dibuat untuk belajar Git & GitHub dari nol.

PENGUMPULAN LINK GITHUB