Basic
Pertemuan 04
Melihat Perubahan & Membatalkan Perubahan
Tujuan Pembelajaran
- Mampu melihat perbedaan file dengan git diff
- Mampu membatalkan perubahan di working directory dan staging area
- Mampu memperbaiki commit terakhir dengan --amend
- Memahami konsep HEAD dan referensi relatif
Agenda (60 menit)
| Waktu | Aktivitas | Durasi |
|---|---|---|
| 00:00 | Review pertemuan 3 | 5 min |
| 00:05 | Materi: git diff | 10 min |
| 00:15 | Materi: Membatalkan perubahan | 10 min |
| 00:25 | Materi: HEAD & referensi relatif | 5 min |
| 00:30 | Demonstrasi live | 10 min |
| 00:40 | Latihan LGB + Terminal | 15 min |
| 00:55 | Rangkuman | 5 min |
Materi Inti
A. Git Diff β Melihat Perbedaan
# Lihat perubahan di working directory (belum di-add)
git diff
# Lihat perubahan yang sudah di-staging (sudah di-add)
git diff --staged
# Bandingkan 2 commit
git diff abc123 def456
# Diff untuk file tertentu saja
git diff -- index.html
Cara membaca output git diff:
diff --git a/index.html b/index.html
--- a/index.html # versi lama
+++ b/index.html # versi baru
@@ -1,3 +1,4 @@
<html>
<body>
-<h1>Halo</h1> # baris yang DIHAPUS (merah)
+<h1>Halo Dunia</h1> # baris yang DITAMBAHKAN (hijau)
+<p>Paragraf baru</p> # baris baru (hijau)
</body>
B. Membatalkan Perubahan
SITUASI PERINTAH
βββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββ
File sudah diedit, belum di-add β git restore <file>
File sudah di-add, belum commit β git restore --staged <file>
Commit terakhir salah pesan β git commit --amend -m "pesan baru"
Commit terakhir lupa tambah file β git add <file>; git commit --amend
β οΈ Peringatan:
git restore <file>akan menghapus perubahan secara PERMANEN. Pastikan kamu yakin sebelum menjalankannya!
C. Konsep HEAD
- HEAD = pointer yang menunjuk ke posisi kamu saat ini di history
- Biasanya HEAD menunjuk ke branch aktif (misalnya
main) HEAD~1= 1 commit sebelum HEAD (parent)HEAD~2= 2 commit sebelum HEAD (grandparent)HEAD~n= n commit sebelum HEAD
Demonstrasi Live
cd proyek-website
# Edit file
echo "<footer>Copyright 2024</footer>" >> index.html
# Lihat diff SEBELUM add
git diff
# Terlihat baris yang ditambahkan (hijau)
# Add ke staging
git add index.html
# Lihat diff SESUDAH add β git diff kosong!
git diff
# Tidak ada output β perubahan sudah di staging
# Lihat diff di staging
git diff --staged
# Terlihat perubahan yang siap di-commit
# Keluarkan dari staging
git restore --staged index.html
git status
# Kembali ke "Changes not staged for commit"
# Batalkan perubahan sepenuhnya
git restore index.html
git status
# Clean β tidak ada perubahan
Demo amend:
echo "<nav>Menu</nav>" >> index.html
git add .
git commit -m "Tmbah navigasi" # Typo!
# Perbaiki pesan commit
git commit --amend -m "Tambah navigasi"
git log --oneline -1
# Pesan sudah diperbaiki
Latihan Interaktif (15 menit)
A. Latihan Visualisasi β Learn Git Branching
Level: βReversing Changes in Gitβ (Ramping Up - Level 4) URL: https://learngitbranching.js.org/?locale=id_ID
Navigasi: Ketik level rampup4 di terminal LGB
Instruksi dalam Bahasa Indonesia:
- Level ini mengajarkan perbedaan antara
git resetdangit revert git resetmemundurkan branch ke commit sebelumnya (untuk branch lokal)git revertmembuat commit baru yang membatalkan perubahan (aman untuk branch yang sudah di-push)
Solusi:
git reset local~1
git checkout pushed
git revert pushed
Konsep yang dipelajari:
resetmenghapus commit dari history (hanya untuk lokal!)revertmembuat commit kebalikan (aman untuk shared branch)
B. Latihan Terminal (Hands-on)
Langkah 1: Edit file dan lihat diff
cd proyek-website
echo "<p>Konten baru</p>" >> index.html
git diff
Langkah 2: Add lalu lihat diff staged
git add index.html
git diff --staged
Langkah 3: Batalkan staging
git restore --staged index.html
git status
Langkah 4: Batalkan perubahan di working directory
git restore index.html
git status
# Harus clean
β οΈ Peringatan: Setelah
git restore index.html, perubahan yang belum di-commit akan hilang permanen!
Langkah 5: Buat commit lalu amend
echo "<aside>Sidebar</aside>" >> index.html
git add .
git commit -m "Tmbah sidebar"
git commit --amend -m "Tambah sidebar"
git log --oneline -1
Tugas Mandiri
- Latihan
git diffdengan minimal 3 file berbeda - Latihan
git restoredangit restore --stagedmasing-masing 2 kali - Buat commit dengan typo, perbaiki dengan
--amend - Di LGB: Selesaikan level βReversing Changes in Gitβ (rampup4)
Praktik Interaktif
Selesaikan level berikut untuk memperkuat pemahaman kamu.
Learn Git Branching β Level: rampup4
Buka di tab baru Memuat Learn Git Branching...