Jika seseorang akan checkout cabang:
git checkout 760ac7e
dari eg b9ac70b
, bagaimana kita bisa kembali ke kepala yang terakhir diketahui b9ac70b
tanpa mengetahui SHA1-nya?
Jika Anda ingat cabang mana yang sudah diperiksa sebelumnya (misal master
) Anda bisa saja
git checkout master
untuk keluar dari negara KEPALA lepas .
Secara umum: git checkout <branchname>
akan membuat Anda keluar dari itu.
Jika Anda tidak ingat nama cabang terakhir, coba
git checkout -
Ini juga mencoba memeriksa cabang terakhir yang Anda periksa.
git checkout -
- Fitur pembunuh!git checkout -b new_branch_name
apakah Anda kehilangan komitmen yang dibuat saat dalam kondisi HEAD terpisah?git gc
dijalankan, mereka dihapus selamanya. Anda dapat menontonnyagit reflog
selama mereka masih di sana.Gunakan
git reflog
untuk menemukan hash dari commit yang sudah diperiksa sebelumnya.Perintah pintas untuk sampai ke cabang yang terakhir Anda periksa (tidak yakin apakah ini berfungsi dengan benar dengan HEAD yang terlepas dan komitmen antara) adalah
git checkout -
sumber
Saya memiliki kasus tepi ini, tempat saya memeriksa versi kode sebelumnya di mana struktur direktori file saya berbeda:
Dalam kasus seperti ini, Anda mungkin perlu menggunakan --force (ketika Anda tahu bahwa kembali ke cabang asli dan membuang perubahan adalah hal yang aman untuk dilakukan).
git checkout master
tidak bekerja:git checkout master --force
(ataugit checkout master -f
) berhasil:sumber
Anda mungkin telah membuat beberapa komitmen baru di
detached HEAD
negara bagian. Saya percaya jika Anda lakukan sebagai jawaban lain menyarankan:maka Anda mungkin kehilangan komitmen Anda !! Sebaliknya, Anda mungkin ingin melakukan ini:
dan kemudian bergabung
commits-from-detached-head
ke cabang apa pun yang Anda inginkan, sehingga Anda tidak kehilangan komitmen.sumber