अभी इस सवाल पर आया और कुछ जोड़ना है
सबसे हाल ही में जाने के लिए:
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"
प्रारूप केवल रेफरी नामों
| sed 's/.*, //g'
को दिखाने के लिए सभी को अनदेखा करता है, लेकिन कई रीफ़्स (*) के अंतिम
git checkout $(...)
सबऑउट के आउटपुट का उपयोग चेकआउट के लिए तर्क के रूप में करते हैं
*) HEAD और दूरस्थ शाखाओं को पहले सूचीबद्ध किया गया है, स्थानीय शाखाओं को वर्णानुक्रम में अवरोही क्रम में अंतिम रूप से सूचीबद्ध किया गया है, इसलिए शेष बची हुई वर्णमाला पहली शाखा का नाम होगी
ध्यान दें:
यह हमेशा केवल (वर्णानुक्रम में) पहली शाखा के नाम का उपयोग करेगा यदि उस प्रतिबद्ध के लिए कई हैं।
वैसे भी, मुझे लगता है कि सबसे अच्छा समाधान सिर्फ सबसे हाल की प्रतिबद्ध के लिए रेफरी नामों को प्रदर्शित करना होगा, जहां यह जांचना है:
git log --branches -1 --pretty=format:'%D'
जैसे git top
उस कमांड के लिए उपनाम बनाएँ ।
git log
अपने प्रश्न के वाक्य के बारे में , आप हमेशाgit log --all
(या अधिक उपयोगी तरीके सेgit log --oneline --graph --all
) चला सकते हैं ।