Datangi pertanyaan ini sekarang dan ada sesuatu untuk ditambahkan
Untuk membuka komit terbaru:
git checkout $(git log --branches -1 --pretty=format:"%H")
Penjelasan:
git log --branchesmemperlihatkan log komit dari semua cabang lokal
-1membatasi satu komit →
--pretty=format:"%H"format komit terkini untuk hanya menampilkan komit yang
git checkout $(...)menggunakan output subkulit sebagai argumen untuk checkout
catatan:
Ini akan menghasilkan kepala terpisah (karena kami checkout langsung ke komit). Ini dapat dihindari dengan mengekstraksi nama cabang menggunakan sed, dijelaskan di bawah ini.
Untuk pergi ke cabang komit terbaru:
git checkout $(git log --branches -1 --pretty=format:'%D' | sed 's/.*, //g')
Penjelasan:
git log --branchesmemperlihatkan log komit dari semua cabang lokal
-1membatasi hingga satu commit →
--pretty=format:"%D"format commit terbaru untuk hanya menampilkan nama ref
| sed 's/.*, //g' - referensi abaikan semua kecuali yang terakhir dari beberapa referensi (*)
git checkout $(...) menggunakan output dari subkulit sebagai argumen untuk checkout
*) KEPALA dan cabang jarak jauh didaftar pertama, cabang lokal terdaftar terakhir dalam urutan abjad, sehingga yang tersisa akan menjadi nama cabang menurut abjad pertama
catatan:
Ini akan selalu hanya menggunakan nama cabang pertama (alfabet) jika ada beberapa untuk komit itu.
Bagaimanapun, saya pikir solusi terbaik hanya akan menampilkan nama-nama referensi untuk komit terbaru untuk mengetahui ke mana harus checkout:
git log --branches -1 --pretty=format:'%D'
Misalnya buat alias git topuntuk perintah itu.
git logkalimat pertanyaan Anda, Anda selalu dapat menjalankangit log --all(atau lebih bermanfaat,git log --oneline --graph --all).