প্রকল্প সম্পর্কে

gh stack হলো একটি GitHub CLI এক্সটেনশন, যা স্ট্যাকড ব্রাঞ্চ এবং পুল রিকোয়েস্ট পরিচালনা করে। স্ট্যাকড PR একটি বড় পরিবর্তনকে ছোট, পর্যালোচনাযোগ্য পুল রিকোয়েস্টের চেইনে ভাগ করে, যেগুলো একে অপরের উপর নির্ভর করে তৈরি হয়; এই টুলটি ব্রাঞ্চ তৈরি, ব্রাঞ্চ রিবেসড রাখা, সঠিক PR বেস ব্রাঞ্চ সেট করা এবং স্তরগুলোর মধ্যে নেভিগেশন স্বয়ংক্রিয় করে। ইনস্টলেশন `gh extension install github/gh-stack` এর মাধ্যমে করা হয় এবং এটির জন্য GitHub CLI v2.0+ প্রয়োজন। AI কোডিং এজেন্টের জন্য একটি ঐচ্ছিক স্কিল ইনস্টল করা যেতে পারে। মূল মডেল: একটি স্ট্যাক হলো ব্রাঞ্চের একটি ক্রমবদ্ধ তালিকা, যার প্রতিটি তার নিচের ব্রাঞ্চের উপর ভিত্তি করে তৈরি, এবং সবচেয়ে নিচেরটি একটি ট্রাঙ্ক ব্রাঞ্চের (সাধারণত main) উপর ভিত্তি করে। স্ট্যাক মেটাডেটা স্থানীয়ভাবে `.git/gh-stack`-এ JSON হিসেবে সংরক্ষিত হয়, এবং রিবেস অবস্থা একটি পৃথক ফাইলে থাকে। কমান্ডগুলোর মধ্যে রয়েছে: - init: একটি স্ট্যাক শুরু করে, ঐচ্ছিকভাবে বিদ্যমান ব্রাঞ্চ গ্রহণ করে, একটি কনফিগারযোগ্য ট্রাঙ্কসহ। - add: স্ট্যাকের উপরে একটি নতুন ব্রাঞ্চ তৈরি করে, পরিবর্তন স্টেজ ও কমিট করার অপশনসহ। - checkout: স্ট্যাক নম্বর, PR নম্বর, PR URL বা ব্রাঞ্চ নাম দিয়ে একটি স্ট্যাক চেক আউট করে, স্থানীয় ও রিমোট স্ট্যাকের জন্য একটি ইন্টারঅ্যাকটিভ পিকারসহ। - rebase: স্ট্যাক জুড়ে ফেচ ও ক্যাসকেডিং রিবেস করে, downstack/upstack/no-trunk স্কোপিং এবং continue/abort হ্যান্ডলিংসহ। - modify: ব্রাঞ্চ drop, fold, insert, rename এবং reorder করার জন্য একটি ইন্টারঅ্যাকটিভ টার্মিনাল UI। - sync: ফেচ, রিমোট স্ট্যাক reconcile, ট্রাঙ্ক fast-forward, ক্যাসকেড রিবেস, পুশ, PR অবস্থা sync, স্ট্যাক লিংক এবং ঐচ্ছিকভাবে মার্জ হওয়া ব্রাঞ্চ prune করে। - push: প্রতি-ব্রাঞ্চ force-with-lease চেকসহ সক্রিয় ব্রাঞ্চ পুশ করে। - submit: ব্রাঞ্চ পুশ করে এবং PR ও GitHub স্ট্যাক তৈরি বা আপডেট করে, একটি ইন্টারঅ্যাকটিভ এডিটর বা অটো মোডসহ। - link: স্থানীয় ট্র্যাকিং ছাড়াই ব্রাঞ্চ নাম বা PR নম্বর থেকে একটি GitHub স্ট্যাক তৈরি বা আপডেট করে, যা অন্যান্য স্থানীয় ব্রাঞ্চ টুলের সাথে ব্যবহারযোগ্য। - merge: এক বা একাধিক স্ট্যাকড PR একটি all-or-nothing অপারেশনে মার্জ করে, merge-method অপশন এবং merge-queue সচেতনতাসহ। - view: স্ট্যাক ব্রাঞ্চ, ক্রম, PR লিংক এবং সাম্প্রতিক কমিট দেখায়, short ও JSON আউটপুটসহ। - unstack/delete: স্থানীয় ট্র্যাকিং এবং/অথবা GitHub থেকে একটি স্ট্যাক সরিয়ে দেয়। - নেভিগেশন কমান্ড (up, down, top, bottom) বর্তমান স্ট্যাকের ব্রাঞ্চগুলোর মধ্যে চলাচল করে। README-তে ফ্ল্যাগ, উদাহরণ, পূর্বশর্ত এবং divergence হ্যান্ডলিং ও merge-queue ইন্টারঅ্যাকশনের মতো আচরণ বিস্তারিতভাবে নথিভুক্ত করা হয়েছে।