Cara bermain Git Kereta
- Baca instruksi level dan lihat rel target di bawah rel kamu (di layar lebar, di panel kanan).
- Ketik satu perintah git per baris. Rel kamu digambar ulang setiap kali kamu mengetik.
- Kalau ada baris yang salah ketik atau tidak valid, pesannya muncul di bawah rel kamu dan baris sesudahnya belum dijalankan.
- Tekan Cek jawaban atau Ctrl + Enter. Jawaban dicek dari bentuk rel, bukan dari teks perintahmu.
- Kalau buntu, buka Petunjuk. Level yang sudah selesai tetap tercentang di browser yang sama.
Yang kamu pelajari
- Level 1
git commit
Menambah satu stasiun di depan lokomotif (HEAD).
- Level 2
git branch
Memasang papan nama baru di stasiun sekarang. Lokomotif tidak pindah.
- Level 3
git switch, git checkout
Memindahkan lokomotif ke cabang lain.
git switch -cmembuat cabang dan pindah sekaligus. - Level 4
git merge
Menggabungkan cabang. Kalau cabang tujuan tinggal menyusul, papannya cukup digeser (fast-forward). Kalau keduanya punya commit baru, lahir commit merge dengan dua parent.
- Level 6
git rebase
Menyalin commit cabangmu ke atas cabang lain, jadi riwayatnya lurus.
- Level 7
git cherry-pick
Menyalin satu commit tertentu ke depan lokomotif.
- Level 8
git reset --hard
Memundurkan cabang ke commit lain, misalnya
HEAD~2untuk dua commit sebelumnya. - Level 9
Detached HEAD
Lokomotif berhenti langsung di sebuah commit, tidak menempel ke cabang mana pun.
Cabang hanyalah papan nama
Di git, cabang bukan salinan proyek. Cabang hanya nama yang menunjuk satu commit. Saat kamu git commit, papan cabang tempat lokomotif berada ikut maju ke commit baru itu.
Karena itu git branch fitur terasa instan: git cukup menulis papan baru. Merge fast-forward juga hanya menggeser papan, dan git reset --hard HEAD~2 memundurkan papan dua stasiun. Commit yang ditinggalkan masih ada, hanya tidak lagi ditunjuk cabang mana pun.
Tanya jawab
Apakah harus daftar akun untuk bermain?
Tidak. Semua level bisa dimainkan tanpa akun. Kemajuanmu disimpan di browser yang kamu pakai, jadi akan hilang kalau data browser dihapus.
Apakah perintahnya dijalankan di git sungguhan?
Tidak. Game ini memakai simulasi yang meniru cara git memindahkan cabang dan HEAD. Tidak ada file, isi commit, atau konflik merge, jadi kamu bisa fokus ke bentuk riwayatnya.
Perintah apa saja yang bisa dipakai?
commit, branch, switch (termasuk switch -c), checkout (termasuk checkout -b dan id commit), merge, rebase, cherry-pick, dan reset. Perintah seperti git push atau git status tidak dipakai di game ini.
Apa beda merge dan rebase?
Merge menyatukan dua rel lewat commit merge, jadi riwayat percabangannya tetap terlihat. Rebase menyalin commit cabangmu ke ujung cabang lain, jadi riwayatnya lurus tapi commit-nya diganti salinan baru, seperti c3'.
Kenapa commit setelah reset jadi pudar?
Commit itu tidak dihapus, hanya tidak ditunjuk cabang atau HEAD lagi. Di git sungguhan commit seperti ini masih bisa ditemukan lewat git reflog sampai akhirnya dibersihkan.