আপনি যখন ব্যবহার করবেন তখন 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