Bagaimana cara membatalkan checkout di git?

134

Saya baru saja memeriksa komit sebelumnya dari repo git lokal saya. Saya belum melakukan perubahan, saya hanya melihatnya. Sekarang saya ingin kembali ke komit terbaru saya - bagaimana saya melakukannya?

Perintah persis yang saya gunakan untuk memeriksanya:

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

Sekarang ketika saya mengetikkan git log, di bagian atas saya melihat ini memeriksa commit, tetapi tidak ada satu pun dari saya yang kemudian melakukan. Apakah saya tidak sengaja menghapusnya?

Yuval Karmi
sumber
Saya pikir Anda melihatnya dengan cara yang salah: kami keluar ke cabang (kepala), tidak melakukan secara individu
Z. Khullah

Jawaban:

183

Coba ini dulu:

git checkout master

(Jika Anda menggunakan cabang berbeda master, gunakan nama cabang di sana.)

Jika itu tidak berhasil, coba ...

Untuk satu file:

git checkout HEAD /path/to/file

Untuk seluruh copy pekerjaan repositori:

git reset --hard HEAD

Dan jika itu tidak berhasil, maka Anda dapat melihat di reflog untuk menemukan SHA kepala lama Anda dan mengatur ulang ke itu:

git reflog
git reset --hard <sha from reflog>

HEAD adalah nama yang selalu menunjukkan komit terbaru di cabang Anda saat ini.

Amber
sumber
tapi bagaimana saya melihat komitmen saya untuk memutuskan hash SHA1 mana yang harus diberikan?
Yuval Karmi
1
Anda tidak - Anda mengetik HEAD, kata demi kata. Git sudah tahu apa HEADartinya. Namun, jika Anda benar-benar ingin memberikan SHA1 sebagai gantinya, Anda dapat menggunakannya git loguntuk melihat log komit.
Amber
ketika saya menjalankannya git reset --hard HEADmembawa saya kembali ke komit yang diperiksa ... Saya akan memposting perintah yang tepat yang saya gunakan untuk memeriksanya.
Yuval Karmi
(Jika Anda penasaran, Anda dapat mengetik git rev-parse HEADdan melihat SHA1 yang sesuai dengan komit terbaru Anda.)
Amber
Saya telah menambahkan dua opsi baru di atas, cobalah (agar - coba versi checkout terlebih dahulu).
Amber
56

Untuk membatalkan git checkoutlakukan git checkout -, mirip dengan cddan cd -di shell.

Gaylord Terima kasih Johnson
sumber
16

Anda mungkin mau git checkout master, atau git checkout [branchname].

wuputah
sumber