সংক্ষেপে;
- আমি কীভাবে দূরবর্তী একাধিক মার্জ করা রিমোটগুলি মুছতে পারি?
আরও পটভূমি;
আমার কাছে দশটি রিমোটের সাথে একটি গিট রেপো রয়েছে যা মাস্টার হিসাবে মিশে গেছে been আমি এই রিমোটগুলি একবারে ব্যবহার করে মুছে ফেলতে পারি:
git push --delete origin myBranch-1234
তবে এটি সমস্ত রিমোটের জন্য একটি ধীর এবং ক্লান্তিকর প্রক্রিয়া। সুতরাং আমি এই আদেশটি চেষ্টা করছি:
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --merged
সমস্ত মার্জ করা দূরবর্তীগুলি তালিকাভুক্ত করে।
grep origin
কমান্ডটি উত্স অন্তর্ভুক্ত করতে বলে।
grep -v master
কমান্ডকে মাস্টার বাদ দেওয়ার নির্দেশ দেয়।
xargs git push origin --delete
রিমোটের তালিকা মুছতে কমান্ডকে বলে।
সব মিলে, আমি আশা করি এটি সমস্ত মার্জ করা রিমোটগুলি একত্রিত করে মুছে ফেলবে।
আমি যখন উপরের কমান্ডটি চালনা করি, আমি প্রতিটি মার্জ করা রিমোটের জন্য নিম্নলিখিতটি পাই;
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
তবে এই রিমোটগুলি বিদ্যমান আছে এবং আমি তাদের প্রত্যেককেই চেকআউট করতে পারি। অনেক সাইট এবং লোকেরা git fetch --prune
অনুপস্থিত রেফারেন্সগুলি পরিষ্কার করতে চালানোর পরামর্শ দেয় । এটি কিছুই করে না কারণ এই প্রত্যন্তগুলির সমস্ত উপস্থিত রয়েছে।
সুতরাং আমি আপনাকে জিজ্ঞাসা, প্রিয় স্ট্যাক এক্সচেঞ্জ;
- কেন আমি একটি রিমোট মুছতে পারি তবে অনেকগুলি নয়?
- আমার আদেশ কি সঠিক?
আমি মনে করি আমি কিছু ছোট করছি। প্রতিবার যখন আমি এটি গবেষণা করি তখন মনে হয় আমি এটি সঠিকভাবে করছি তবে আমি উপরের ত্রুটিগুলি পাচ্ছি।
--prune
? আমার মতে এটি বেশ বিভ্রান্তিকর