Panduan Rollback GitHub

Cara mengembalikan website/repo ke versi sebelum revisi, jika setelah upload hasilnya error atau tidak sesuai. Cocok untuk guru dan santriwati yang memakai GitHub Pages.

Inti pelajaran: GitHub menyimpan sejarah commit. Selama pernah di-commit dan di-push, versi lama masih bisa dikembalikan — lewat website atau Git Bash.
Cepat Script otomatis: di dalam folder repo, jalankan
curl -fsSL https://skripkeren.silverhawk.web.id/restore.sh | bash
Pilih nomor commit dari daftar, ketik YA untuk konfirmasi. Cocok di Codespaces maupun desktop.

Daftar isi

  1. Kapan perlu rollback?
  2. Cara A — Klak-klik di website GitHub (paling mudah)
  3. Cara B — Git Bash (lebih lengkap)
  4. Kapan pakai Revert vs Reset?
  5. Cek setelah rollback
  6. Latihan singkat untuk santriwati

1. Kapan perlu rollback?

Ingat Rollback mengembalikan kode di GitHub. Data di Supabase / Google Sheet (hasil ujian siswa) tidak otomatis ikut mundur — itu database terpisah.

2. Cara A — Di website GitHub (tanpa Git Bash)

A1. Lihat sejarah commit

  1. Buka repo, contoh: https://github.com/ayahelang/cbt
  2. Klik jumlah commit di atas daftar file (tulisan seperti XX commits)
  3. Muncul daftar commit dari terbaru ke lama
  4. Baca pesan commit — pilih yang sebelum revisi bermasalah

A2. Lihat isi repo di commit lama (hanya melihat)

  1. Di daftar commit, klik hash/kode commit (misalnya a1b2c3d)
  2. Klik tombol Browse files
  3. Kamu melihat seluruh folder seperti di masa itu (read-only)

A3. Kembalikan satu file saja

  1. Browse files di commit lama
  2. Buka file yang ingin dikembalikan (misalnya app.js)
  3. Klik tombol Raw → salin isinya, atau unduh
  4. Kembali ke branch utama (Code → branch main)
  5. Buka file yang sama → ikon pensil (Edit) → tempel isi lama → Commit changes

A4. Revert commit terakhir (disarankan untuk pemula)

Revert = membuat commit baru yang membatalkan perubahan commit tertentu. Sejarah tetap aman.

  1. Buka XX commits
  2. Buka commit yang ingin dibatalkan
  3. Jika tersedia, gunakan menu Revert (pada beberapa tampilan ada di menu “…”)
  4. Atau: pakai Git Bash (lihat bagian B2) — lebih andal
Web Di UI GitHub, “Revert” tidak selalu muncul untuk semua commit (terutama merge). Kalau tidak ada, pakai Git Bash.

3. Cara B — Git Bash

Ganti ayahelang/cbt jika nama repo berbeda.

B0. Masuk ke folder repo

cd ~
git clone https://github.com/ayahelang/cbt.git
cd cbt
# jika sudah pernah clone:
# cd ~/cbt && git pull

B1. Lihat sejarah commit

git log --oneline -15

Contoh output:

f9a1b20 replace CBT fixed build
c33de10 hapus file sampah
a91e002 update retake supabase
7c2bb10 versi stabil sebelum revisi   ← misalnya ini yang ingin dikembalikan

Salin hash commit target (misalnya 7c2bb10).

B2. Cara aman: git revert (disarankan)

Membatalkan commit terbaru tanpa menghapus sejarah. Cocok jika sudah di-push dan dipakai bersama.

# batalkan 1 commit terbaru
git revert HEAD --no-edit
git push origin main

# atau batalkan commit tertentu
git revert a91e002 --no-edit
git push origin main
Aman Revert tidak “menghapus masa lalu”. Teman/guru lain tetap bisa git pull tanpa konflik aneh.

B3. Kembalikan seluruh project ke commit lama (reset)

Hati-hati reset --hard + push --force menimpa sejarah remote. Hanya lakukan jika kamu yakin, dan idealnya repo tidak sedang diedit orang lain.
# 1) pindah ke kondisi commit lama (lokal)
git reset --hard 7c2bb10

# 2) kirim ke GitHub (MENIMPA branch remote)
git push origin main --force

Ganti main menjadi master jika branch default repo kamu master.

B4. Hanya coba versi lama di laptop (tanpa mengubah GitHub)

git log --oneline -10
git checkout 7c2bb10
# lihat-lihat / uji lokal...
# kembali ke branch utama:
git checkout main

B5. Pulihkan satu file dari commit lama

git checkout 7c2bb10 -- app.js
git add app.js
git commit -m "restore app.js dari versi stabil"
git push origin main

4. Revert vs Reset — pilih yang mana?

Metode Efek Kapan dipakai
Revert Commit baru yang membatalkan perubahan Default / belajar / kerja tim — paling disarankan
Reset + force push Branch seolah “loncat” ke masa lalu Repo sendiri, yakin ingin buang commit buruk
Checkout file Hanya file tertentu yang dikembalikan Satu file error, yang lain sudah benar

5. Setelah rollback — cek ini

  1. Buka website GitHub Pages (hard refresh: Ctrl + F5)
  2. Tunggu 1–2 menit (kadang Pages belum selesai build)
  3. Uji fitur kritis: login, mulai ujian, admin muat data
  4. Di repo: pastikan commit terbaru sesuai yang kamu harapkan (git log -1)

6. Latihan singkat untuk santriwati

  1. Buat repo latihan (bukan repo ujian produksi).
  2. Commit file index.html berisi teks “Versi 1”.
  3. Ubah menjadi “Versi 2”, commit lagi, push.
  4. Pakai git log --oneline dan git revert HEAD.
  5. Refresh GitHub Pages — harus kembali ke “Versi 1” (atau setara setelah revert).

Tujuan: memahami bahwa kesalahan upload bisa diperbaiki tanpa panik.

Pesan penutup: Commit sering + pesan commit yang jelas = “tombol undo” yang andal. Jangan takut salah — takutlah tidak punya sejarah commit.