Peta dunia

 

EN: Read in English

Dunia 11: Pusat Bantuan

Commit hilang selepas reset

Anda akan belajar: cara bawa balik commit selepas reset --hard.

Teks BM belum disemak oleh penutur asli.

Masalahnya

main dan HEAD lompat balik dua commit. Add day 2 entry dan Add day 3 entry jadi titik putus-putus yang hilang.
6d3a9b1a8feb63270a76ebcf4670031ae57

Alamak. Satu git reset --hard HEAD~2, dan dua hari diari lenyap. Tarik nafas. Ini berlaku pada semua orang. Ini cara selamat untuk keluar.

Cuba

Hari 2 dan hari 3 ialah commit (titik simpan). Boleh Git bawa balik?

Pilih satu jawapan.

Tengok

git reflog: HEAD@{0} ialah reset. HEAD@{1} ialah commit: Add day 3 entry. Output terminal: $ git reflog 270a76e (HEAD -> main) HEAD@{0}: reset: moving to HEAD~2 031ae57 HEAD@{1}: commit: Add day 3 entry bcf4670 HEAD@{2}: commit: Add day 2 entry 270a76e (HEAD -> main) HEAD@{3}: commit: Add style a8feb63 HEAD@{4}: commit: Add day 1 page 6d3a9b1 HEAD@{5}: commit (initial): Add README

git reflog senaraikan setiap langkah HEAD. HEAD@{1} ialah tempat anda sejurus sebelum reset.

Cuba

Lompat balik ke sejurus sebelum reset.

6d3a9b1a8feb63270a76ebcf4670031ae57

Semak

Susun langkah menyelamat, yang pertama di atas.

Langkah pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.

  • git status: pastikan tiada yang belum di-commit
  • git reset --hard HEAD@{1}
  • git reflog: cari baris sebelum reset
  • git log --oneline: pastikan commit dah balik

Anda berjaya!

Kini anda boleh bawa balik commit selepas reset –hard.

Nak tahu lebih (pilihan)

Nak lebih berhati-hati? git branch rescue HEAD@{1} cuma letak label pada commit yang hilang. Tiada yang bergerak, tiada yang dipadam. Sejurus selepas reset, ORIG_HEAD juga tunjuk ke tempat anda tadi. Perubahan yang tak pernah di-commit tak boleh balik. Selalu commit!