Щойно перейшов до цього питання, і є що додати
Щоб перейти до останньої комісії:
git checkout $(git log --branches -1 --pretty=format:"%H")
Пояснення:
git log --branches
показує журнал комітетів з усіх локальних гілок,
-1
обмеження на один фіксатор → останній
--pretty=format:"%H"
формат фіксації , щоб показати лише хеш фіксування
git checkout $(...)
використання виводу підпакетів як аргумент для оформлення замовлення
Примітка:
Це призведе до відстороненої голови (тому що ми підписуємося безпосередньо на комітет). Цього можна уникнути, отримавши назву гілки за допомогою sed
, поясненої нижче.
Щоб перейти до гілки останнього комітету:
git checkout $(git log --branches -1 --pretty=format:'%D' | sed 's/.*, //g')
Пояснення:
git log --branches
показує журнал комітетів з усіх локальних гілок,
-1
обмеження на один фіксатор → останній
--pretty=format:"%D"
формат фіксації , щоб відображати лише імена ref,
| sed 's/.*, //g'
ігнорувати всі, крім останнього з декількох запитів
git checkout $(...)
використовувати вихідний підзахист як аргумент для оформлення замовлення
*) HEAD та віддалені гілки вказуються першими, локальні гілки - останніми в алфавітному порядку за зменшенням, тому одна, що залишилася, буде алфавітно першою назвою гілки
Примітка:
Це завжди використовуватиме (за алфавітом) першу назву гілки, якщо їх є кілька.
У будь-якому випадку, я думаю, що найкращим рішенням було б просто відобразити імена ref для найсвіжіших комісій, щоб знати, куди слід оформити замовлення:
git log --branches -1 --pretty=format:'%D'
Наприклад, створити псевдонім git top
для цієї команди.
git log
речення вашого запитання, ви завжди можете бігтиgit log --all
(або більш корисноgit log --oneline --graph --all
).