Git & GitHub
Panduan lengkap belajar Git & GitHub dari nol - version control yang wajib dikuasai developer!
Git & GitHub
Halo! Pernah gak sih kamu ngalamin ini: lagi ngerjain project, terus tiba-tiba ada yang error, dan kamu pengen balik ke versi sebelumnya tapi udah telanjur kehapus? Atau kerja bareng tim tapi file-nya bentrok terus? Nah, Git & GitHub hadir buat solve masalah-masalah kayak gitu!
Apa sih Git & GitHub itu?
Git = Software buat track perubahan code kamu (kayak "time machine" buat code)
GitHub = Website buat simpen dan share code kamu (kayak "Google Drive" tapi khusus buat code)
Analogi gampangnya: Git itu kayak sistem save game di PlayStation, dan GitHub itu kayak cloud storage-nya. Jadi kamu bisa save progress, balik ke save point sebelumnya, atau bahkan share save-an kamu ke orang lain!
Kenapa Git & GitHub Penting Banget?
Bayangin kamu lagi bikin website atau aplikasi. Tanpa Git, ini yang bakal terjadi:
❌ Tanpa Git:
- Folder project kamu penuh dengan:
project_final.zip,project_final_v2.zip,project_final_REAL.zip,project_final_REAL_banget.zip😅 - Kalau ada yang error, susah balik ke versi yang work
- Kerja bareng tim? Chaos! File bentrok mulu
- Gak tau siapa yang ngubah apa dan kapan
✅ Dengan Git:
- Semua versi tersimpan rapi dalam satu folder
- Bisa balik ke versi manapun dengan mudah
- Kerja bareng tim jadi smooth
- Track siapa ngubah apa, kapan, dan kenapa
- Bisa eksperimen tanpa takut rusak yang udah jalan
Fun Fact: Hampir SEMUA developer di dunia pake Git. Jadi kalau kamu mau jadi developer, Git itu WAJIB dikuasai!
Apa yang Bakal Kamu Pelajari
1. Pengenalan Git & Version Control
Pahami konsep dasar version control dan kenapa ini game-changer buat developer.
Yang Bakal Dipelajari:
- Apa itu version control (dalam bahasa manusia!)
- Kenapa Git jadi standar industri
- Bedanya Git vs GitHub (banyak yang bingung nih!)
- Kapan harus pake Git
Analogi: Git itu kayak sistem undo/redo yang super powerful. Tapi instead of cuma bisa undo 1-2 langkah, kamu bisa balik ke kondisi project 1 minggu, 1 bulan, bahkan 1 tahun yang lalu!
2. Setup & Instalasi
Install dan konfigurasi Git di komputer kamu.
Yang Bakal Dilakukan:
- Install Git (Windows/Mac/Linux)
- Setup username dan email
- Bikin akun GitHub
- Connect Git dengan GitHub
- Test apakah udah jalan
Jangan Khawatir: Prosesnya gampang kok! Kita bakal step-by-step, gak ada yang di-skip.
3. Perintah Dasar Git
Belajar command-command fundamental yang bakal kamu pake setiap hari.
Command yang Dipelajari:
git init- Mulai tracking projectgit add- Pilih file yang mau di-savegit commit- Save perubahan dengan catatangit push- Upload ke GitHubgit pull- Download update terbarugit status- Cek kondisi projectgit log- Liat history perubahan
Analogi: Ini kayak basic controls di game - move, jump, attack. Setelah master ini, sisanya bakal lebih gampang!
4. GitHub Workflow
Cara kerja dengan GitHub untuk kolaborasi dan portfolio.
Yang Bakal Dipelajari:
- Bikin repository (tempat simpen project)
- Clone repository (download project orang)
- Fork repository (copy project orang ke akun kamu)
- Pull Request (minta code kamu di-review dan di-merge)
- Issue tracking (manage bugs dan feature requests)
- README.md (dokumentasi project)
Bonus: GitHub profile kamu bisa jadi portfolio yang keren buat apply kerja!
5. Branching & Merging
Teknik kerja dengan multiple versions secara parallel.
Konsep:
- Branch = Cabang terpisah buat eksperimen atau develop fitur baru
- Merge = Gabungin perubahan dari branch ke main code
Analogi: Bayangin kamu lagi nulis novel. Main branch itu draft utama. Terus kamu bikin branch baru buat coba ending alternatif. Kalau bagus, merge ke main draft. Kalau jelek, tinggal delete branch-nya. Main draft tetep aman!
Use Case:
- Develop fitur baru tanpa ganggu code yang udah jalan
- Eksperimen dengan aman
- Kerja parallel dengan tim (masing-masing di branch sendiri)
Setup & Instalasi (Step-by-Step)
Oke, sekarang kita mulai setup! Ikutin step-by-step ini, dijamin gampang.
Step 1: Install Git
Cara Install di Windows:
- Download Git dari git-scm.com
- Jalankan installer yang udah di-download
- Ikutin wizard instalasi (pake default settings aja, aman kok!)
- Setelah selesai, buka Git Bash (cari di Start Menu)
Verify Instalasi:
git --versionKalau muncul versi Git (misal: git version 2.43.0), berarti berhasil! 🎉
Cara Install di macOS:
Option 1: Pake Homebrew (Recommended)
# Install Homebrew dulu kalau belum punya
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Git
brew install gitOption 2: Download Installer
- Download dari git-scm.com
- Jalankan installer
Verify Instalasi:
git --versionKalau muncul versi Git, berarti berhasil! 🎉
Cara Install di Linux:
Ubuntu/Debian:
sudo apt update
sudo apt install gitFedora:
sudo dnf install gitArch Linux:
sudo pacman -S gitVerify Instalasi:
git --versionKalau muncul versi Git, berarti berhasil! 🎉
Step 2: Konfigurasi Git
Setelah install, kita perlu kasih tau Git siapa kita:
# Set nama kamu (akan muncul di commit history)
git config --global user.name "Nama Kamu"
# Set email kamu (gunakan email yang sama dengan GitHub nanti)
git config --global user.email "email.kamu@example.com"
# Set default branch name ke 'main' (standar baru)
git config --global init.defaultBranch main
# Cek konfigurasi
git config --listKenapa Penting: Setiap perubahan yang kamu save (commit) akan tercatat dengan nama dan email ini. Jadi pastikan bener ya!
Step 3: Bikin Akun GitHub
- Buka github.com
- Klik Sign up
- Isi form registrasi:
- Username (pilih yang profesional, ini bakal jadi portfolio kamu!)
- Email (pake yang sama dengan Git config tadi)
- Password (yang kuat ya!)
- Verify email kamu
- Pilih plan Free (udah lebih dari cukup!)
Tips Username:
- ✅ Bagus:
johndoe,jane-smith,dev-budi - ❌ Kurang bagus:
coolguy123,xxgamerxx,alay2024
Step 4: Connect Git dengan GitHub (SSH Key)
Supaya Git bisa "ngobrol" sama GitHub tanpa perlu password terus-terusan, kita setup SSH key:
# Generate SSH key
ssh-keygen -t ed25519 -C "email.kamu@example.com"
# Tekan Enter untuk default location
# Tekan Enter lagi untuk no passphrase (atau bikin passphrase kalau mau lebih secure)
# Copy public key
# Windows (Git Bash):
cat ~/.ssh/id_ed25519.pub | clip
# macOS:
pbcopy < ~/.ssh/id_ed25519.pub
# Linux:
cat ~/.ssh/id_ed25519.pub
# (copy manual dari output)Tambahin ke GitHub:
- Buka GitHub → Settings → SSH and GPG keys
- Klik New SSH key
- Kasih title (misal: "Laptop Pribadi")
- Paste key yang udah di-copy tadi
- Klik Add SSH key
Test Connection:
ssh -T git@github.comKalau muncul "Hi [username]! You've successfully authenticated...", berarti berhasil! 🎉
Perintah Dasar Git (Yang Wajib Dikuasai)
Sekarang kita belajar command-command yang bakal kamu pake setiap hari. Gak perlu hafalin semua, nanti juga hafal sendiri karena sering dipake!
Workflow Dasar Git
Ini alur kerja standar yang bakal kamu lakuin berulang-ulang:
1. Bikin/ubah file
2. git add (pilih file yang mau di-save)
3. git commit (save dengan catatan)
4. git push (upload ke GitHub)Mari kita breakdown satu-satu:
1. git init - Mulai Project Baru
Fungsi: Bikin folder biasa jadi Git repository (mulai tracking)
# Bikin folder project
mkdir my-project
cd my-project
# Initialize Git
git initAnalogi: Kayak kamu bilang "Oke, mulai sekarang semua perubahan di folder ini bakal gue track!"
Output: Muncul folder hidden .git yang nyimpen semua history
2. git status - Cek Kondisi Project
Fungsi: Liat file mana aja yang berubah dan status-nya
git statusOutput Example:
On branch main
Changes not staged for commit:
modified: index.html
Untracked files:
style.cssArtinya:
modified: index.html= File ini udah ada dan berubahUntracked: style.css= File baru yang belum pernah di-track
Tips: Sering-sering pake command ini buat tau kondisi project kamu!
3. git add - Pilih File yang Mau Di-Save
Fungsi: Masukin file ke "staging area" (antrian buat di-save)
# Add satu file
git add index.html
# Add beberapa file
git add index.html style.css
# Add semua file yang berubah
git add .
# Add semua file dengan extension tertentu
git add *.cssAnalogi: Kayak kamu masukin barang ke keranjang belanja. Belum checkout, tapi udah dipilih mana yang mau dibeli.
4. git commit - Save Perubahan
Fungsi: Save perubahan dengan catatan (message)
# Commit dengan message
git commit -m "Tambah halaman about"
# Commit dengan message yang lebih panjang
git commit -m "Tambah halaman about" -m "Berisi profil perusahaan dan kontak"Commit Message yang Baik:
- ✅ "Tambah fitur login"
- ✅ "Fix bug di halaman checkout"
- ✅ "Update styling navbar"
- ❌ "update" (terlalu vague)
- ❌ "asdfasdf" (gak jelas)
- ❌ "fix" (fix apa?)
Tips: Tulis commit message yang jelas supaya nanti kamu (atau orang lain) ngerti apa yang berubah!
5. git log - Liat History
Fungsi: Liat semua commit yang pernah dilakukan
# Liat history lengkap
git log
# Liat history dalam format singkat
git log --oneline
# Liat history dengan graph (keren!)
git log --oneline --graph --allOutput Example:
a1b2c3d (HEAD -> main) Tambah halaman about
e4f5g6h Fix bug di form contact
i7j8k9l Initial commit6. git push - Upload ke GitHub
Fungsi: Upload commit kamu ke GitHub
# Push ke branch main
git push origin main
# Push pertama kali (set upstream)
git push -u origin mainAnalogi: Kayak kamu upload file ke Google Drive. Sekarang code kamu udah aman di cloud!
7. git pull - Download Update Terbaru
Fungsi: Download perubahan terbaru dari GitHub
git pull origin mainKapan Dipakai:
- Sebelum mulai kerja (biar dapet update terbaru)
- Setelah orang lain push perubahan
- Kerja di komputer berbeda
Analogi: Kayak sync Google Drive biar dapet file terbaru.
Workflow GitHub (Kolaborasi & Portfolio)
Sekarang kita belajar cara kerja dengan GitHub buat kolaborasi dan bikin portfolio!
Bikin Repository Baru
Di GitHub:
- Klik tombol + di kanan atas → New repository
- Isi form:
- Repository name: nama-project (pake lowercase dan dash)
- Description: Deskripsi singkat project
- Public/Private: Public kalau mau jadi portfolio
- Add README: ✅ (recommended)
- Klik Create repository
Connect dengan Local Project:
# Di folder project kamu
git remote add origin git@github.com:username/nama-repo.git
git branch -M main
git push -u origin mainClone Repository (Download Project)
Fungsi: Download project dari GitHub ke komputer kamu
# Clone dengan SSH (recommended)
git clone git@github.com:username/nama-repo.git
# Clone dengan HTTPS
git clone https://github.com/username/nama-repo.git
# Masuk ke folder project
cd nama-repoKapan Dipakai:
- Mau contribute ke project open source
- Mau lanjutin project di komputer lain
- Mau belajar dari code orang lain
Fork Repository (Copy Project Orang)
Fungsi: Copy repository orang ke akun GitHub kamu
Cara:
- Buka repository yang mau di-fork
- Klik tombol Fork di kanan atas
- Repository ter-copy ke akun kamu!
Use Case:
- Mau contribute ke open source project
- Mau modifikasi project orang tanpa ganggu yang asli
- Mau belajar dari project orang dengan eksperimen sendiri
Pull Request (Minta Code Di-Review)
Fungsi: Minta perubahan kamu di-review dan di-merge ke project utama
Workflow:
- Fork repository
- Clone fork kamu
- Bikin branch baru
- Bikin perubahan
- Push ke fork kamu
- Buka GitHub → Klik New Pull Request
- Isi deskripsi perubahan kamu
- Submit!
Tips PR yang Baik:
- Jelaskan apa yang kamu ubah dan kenapa
- Kasih screenshot kalau ada perubahan UI
- Test dulu sebelum submit
- Respond to feedback dengan baik
Branching & Merging (Level Up!)
Ini konsep yang powerful banget buat kerja dengan tim atau develop fitur baru!
Apa itu Branch?
Analogi: Bayangin kamu lagi bikin game. Main branch itu game yang udah jalan. Terus kamu mau tambahin fitur baru (misal: multiplayer mode). Instead of langsung ubah main game (risky!), kamu bikin "parallel universe" buat develop fitur itu. Kalau udah jadi dan tested, baru merge ke main game.
Command Branching
# Liat semua branch
git branch
# Bikin branch baru
git branch feature-login
# Pindah ke branch
git checkout feature-login
# Bikin branch baru DAN langsung pindah (shortcut)
git checkout -b feature-login
# Delete branch (setelah di-merge)
git branch -d feature-loginWorkflow dengan Branch
# 1. Bikin branch baru untuk fitur
git checkout -b feature-payment
# 2. Kerja di branch ini (add, commit seperti biasa)
git add .
git commit -m "Tambah payment gateway"
# 3. Push branch ke GitHub
git push origin feature-payment
# 4. Setelah selesai, merge ke main
git checkout main
git merge feature-payment
# 5. Push main yang udah di-merge
git push origin main
# 6. Delete branch yang udah gak kepake
git branch -d feature-paymentMerge Conflict (Dan Cara Handle-nya)
Apa itu Merge Conflict? Terjadi kalau dua orang ngubah file yang sama di tempat yang sama.
Contoh Conflict:
<<<<<<< HEAD
<h1>Welcome to My Site</h1>
=======
<h1>Selamat Datang di Website Saya</h1>
>>>>>>> feature-indoCara Resolve:
- Buka file yang conflict
- Pilih mana yang mau dipakai (atau gabungin keduanya)
- Hapus marker
<<<<<<<,=======,>>>>>>> - Save file
git addfile yang udah di-resolvegit commituntuk finalize merge
Tips: Komunikasi dengan tim buat minimize conflict!
Best Practices & Tips
Do's and Don'ts
DO ✅
- Commit sering (small, focused commits)
- Tulis commit message yang jelas
- Pull sebelum mulai kerja
- Test sebelum push
- Gunakan branch untuk fitur baru
DON'T ❌
- Commit file yang gak perlu (node_modules, .env, dll)
- Push code yang error
- Kerja langsung di main branch
- Commit message yang gak jelas
- Lupa pull sebelum push
.gitignore (File yang Gak Perlu Di-Track)
Bikin file .gitignore di root project:
# Dependencies
node_modules/
vendor/
# Environment variables
.env
.env.local
# Build output
dist/
build/
*.log
# OS files
.DS_Store
Thumbs.db
# IDE
.vscode/
.idea/Commit Message Convention
Format yang Bagus:
<type>: <subject>
<body (optional)>Types:
feat: Fitur barufix: Bug fixdocs: Update dokumentasistyle: Formatting, missing semicolons, dllrefactor: Refactoring codetest: Tambah atau update testschore: Maintenance tasks
Contoh:
feat: tambah fitur login dengan Google
- Integrasi Google OAuth
- Tambah button "Login with Google"
- Update database schema untuk social loginTroubleshooting Common Issues
Latihan Praktis
Sekarang waktunya praktek! Coba exercise ini:
Exercise 1: First Repository
- Bikin folder project baru
- Initialize Git
- Bikin file
README.md - Add, commit, push ke GitHub
- Edit file di GitHub
- Pull perubahan ke local
Exercise 2: Branching Practice
- Bikin branch
feature-about - Tambah file
about.html - Commit di branch tersebut
- Merge ke main
- Delete branch
Exercise 3: Collaboration Simulation
- Fork repository teman
- Clone ke local
- Bikin perubahan
- Push ke fork kamu
- Bikin Pull Request
Resources & Cheat Sheet
Git Cheat Sheet
# Setup
git config --global user.name "Name"
git config --global user.email "email@example.com"
# Basic
git init # Initialize repo
git status # Check status
git add . # Stage all files
git commit -m "message" # Commit changes
git push origin main # Push to GitHub
git pull origin main # Pull from GitHub
# Branching
git branch # List branches
git branch name # Create branch
git checkout name # Switch branch
git checkout -b name # Create & switch
git merge name # Merge branch
git branch -d name # Delete branch
# History
git log # View history
git log --oneline # Compact history
git diff # View changes
# Undo
git reset --soft HEAD~1 # Undo last commit (keep changes)
git reset --hard HEAD~1 # Undo last commit (discard changes)
git revert HEAD # Revert last commit (safe)Learning Resources
GitHub Learning Lab
Interactive tutorials langsung di GitHub. Gratis!
Git Visualizer
Visualisasi Git commands. Bagus buat pemula!
Oh My Git!
Game buat belajar Git. Fun dan educational!
Git Documentation
Official docs. Lengkap tapi agak teknis.
Langkah Selanjutnya
Setelah kamu comfortable dengan Git & GitHub, kamu bisa explore:
Frontend Development
Mulai belajar HTML, CSS, JavaScript dengan Git workflow
Open Source Contribution
Contribute ke project open source dan build portfolio
GitHub Actions
Automation dan CI/CD dengan GitHub
Butuh Help?
Kalau kamu stuck atau ada pertanyaan tentang Git & GitHub, feel free to reach out! Saya sedia konsultasi one-on-one.
Selamat belajar! Remember: Git itu kayak belajar naik sepeda - awalnya susah, tapi sekali bisa, gak bakal lupa! 🚀