আপনি যখন ব্যবহার করবেন তখন git push origin :staleStuffএটি স্বয়ংক্রিয়ভাবে সরিয়ে ফেলা হয় origin/staleStuff, সুতরাং যখন আপনি দৌড়বেন git remote prune origin, আপনি এমন কোনও শাখা ছাঁটাই করেছেন যা অন্য কারও দ্বারা মুছে ফেলা হয়েছে। সম্ভবত আপনার সহকর্মীদের এখন git pruneআপনি মুছে ফেলা শাখাগুলি থেকে মুক্তি পেতে দৌড়াতে হবে more
সুতরাং ঠিক কি git remote pruneকরে? মূল ধারণা: স্থানীয় শাখাগুলি (শাখাগুলি ট্র্যাকিং নয়) git remote pruneকমান্ড দ্বারা স্পর্শ করা হয় না এবং ম্যানুয়ালি মুছে ফেলা উচিত।
এখন, আরও ভাল বোঝার জন্য একটি বাস্তব-বিশ্বের উদাহরণ:
আপনার কাছে 2 টি শাখা সহ একটি রিমোট রিপোজিটরি রয়েছে: masterএবং feature। ধরে নেওয়া যাক আপনি উভয় শাখায় কাজ করছেন, ফলস্বরূপ আপনার স্থানীয় সংগ্রহস্থলে এই রেফারেন্সগুলি রয়েছে (কোনও বিভ্রান্তি এড়াতে পুরো রেফারেন্সের নাম দেওয়া হয়েছে):
refs/heads/master(সংক্ষিপ্ত নাম master)
refs/heads/feature(সংক্ষিপ্ত নাম feature)
refs/remotes/origin/master(সংক্ষিপ্ত নাম origin/master)
refs/remotes/origin/feature(সংক্ষিপ্ত নাম origin/feature)
এখন, একটি সাধারণ দৃশ্য:
- অন্য কিছু বিকাশকারী এর সমস্ত কাজ শেষ করে
feature, এতে একীভূত হয় masterএবং featureদূরবর্তী সংগ্রহস্থল থেকে শাখাটি সরিয়ে দেয় ।
- ডিফল্টরূপে, আপনি যখন
git fetch(বা git pull) করেন, আপনার স্থানীয় সংগ্রহস্থল থেকে কোনও রেফারেন্স সরানো হয় না, সুতরাং আপনার কাছে এখনও এই 4 টি রেফারেন্স রয়েছে।
- আপনি তাদের পরিষ্কার করার সিদ্ধান্ত নিয়েছেন, এবং চালনা করুন
git remote prune origin।
- গিট সনাক্ত করে যে
featureশাখাটি আর বিদ্যমান নেই, সুতরাং refs/remotes/origin/featureএকটি বাসি শাখাও মুছে ফেলা উচিত।
- এখন আপনার সাথে 3 টি রেফারেন্স রয়েছে
refs/heads/feature, কারণ git remote pruneকোনও refs/heads/*রেফারেন্স সরিয়ে দেয় না ।
branch.<branch_name>.mergeকনফিগারেশন প্যারামিটার দ্বারা দূরবর্তী ট্র্যাকিং শাখার সাথে সম্পর্কিত স্থানীয় শাখাগুলি সনাক্ত করা সম্ভব । এই প্যারামিটারটি কোনও কাজের জন্য সত্যই প্রয়োজন নেই (সম্ভবত ব্যতীত git pull), তাই এটি অনুপস্থিত হতে পারে।
(উদাহরণ থেকে আপডেট এবং মন্তব্যগুলি থেকে দরকারী তথ্য)
git remote show originএবং চিহ্নিত কোনও শাখার সন্ধান করতে পারেনstale