এই মুহূর্তে এই প্রশ্নটি জুড়ে এসেছিল এবং যুক্ত করার মতো কিছু আছে
সাম্প্রতিক প্রতিশ্রুতিতে যেতে:
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 $(...)এর চেকআউটটির আর্গুমেন্ট হিসাবে সাবশেলের আউটপুট ব্যবহার বাদ দেয়
*) হেড এবং রিমোট শাখাগুলি প্রথমে তালিকাভুক্ত করা হয়, স্থানীয় শাখাগুলি বর্ণমালা অনুসারে অবতরণ ক্রমে সর্বশেষে তালিকাভুক্ত হয়, সুতরাং অবশিষ্ট একটিটি বর্ণমালা অনুসারে প্রথম শাখার নাম হবে
বিঃদ্রঃ:
যদি প্রতিশ্রুতিবদ্ধতার জন্য একাধিক থাকে তবে এটি সর্বদা (বর্ণানুক্রমিক) প্রথম শাখার নামটি ব্যবহার করবে।
যাইহোক, আমি মনে করি সেরা সমাধানটি হবে সর্বাধিক সাম্প্রতিক প্রতিশ্রুতি হিসাবে রেজিস্ট্রেশন নামগুলি প্রদর্শন করা যেখানে চেকআউট করতে হবে তা জানতে:
git log --branches -1 --pretty=format:'%D'
উদাহরণস্বরূপ git topযে কমান্ডের জন্য উপনাম তৈরি করুন ।
git logআপনার প্রশ্নের বাক্য, আপনি সবসময় চালাতে পারেনgit log --all(বা আরো গুরুত্বপূর্ণভাবে,git log --oneline --graph --all)।