Jika seseorang akan checkout cabang:
git checkout 760ac7e
dari eg b9ac70b, bagaimana kita bisa kembali ke kepala yang terakhir diketahui b9ac70btanpa mengetahui SHA1-nya?
Jika seseorang akan checkout cabang:
git checkout 760ac7e
dari eg b9ac70b, bagaimana kita bisa kembali ke kepala yang terakhir diketahui b9ac70btanpa mengetahui SHA1-nya?
Jawaban:
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 -b new_branch_nameapakah Anda kehilangan komitmen yang dibuat saat dalam kondisi HEAD terpisah?
git gcdijalankan, mereka dihapus selamanya. Anda dapat menontonnya git reflogselama mereka masih di sana.
Saya memiliki kasus tepi ini, tempat saya memeriksa versi kode sebelumnya di mana struktur direktori file saya berbeda:
git checkout 1.87.1
warning: unable to unlink web/sites/default/default.settings.php: Permission denied
... other warnings ...
Note: checking out '1.87.1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again.
Example:
git checkout -b <new-branch-name>
HEAD is now at 50a7153d7... Merge branch 'hotfix/1.87.1'
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
error: The following untracked working tree files would be overwritten by checkout:
web/sites/default/default.settings.php
... other files ...
git checkout master --force(atau git checkout master -f) berhasil:
git checkout master -f
Previous HEAD position was 50a7153d7... Merge branch 'hotfix/1.87.1'
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
Anda mungkin telah membuat beberapa komitmen baru di detached HEADnegara bagian. Saya percaya jika Anda lakukan sebagai jawaban lain menyarankan:
git checkout master
# or
git checkout -
maka Anda mungkin kehilangan komitmen Anda !! Sebaliknya, Anda mungkin ingin melakukan ini:
# you are currently in detached HEAD state
git checkout -b commits-from-detached-head
dan kemudian bergabung commits-from-detached-headke cabang apa pun yang Anda inginkan, sehingga Anda tidak kehilangan komitmen.
git checkout -- Fitur pembunuh!