গিট ছাঁটাই কি?


88

আমি দুর্ঘটনাক্রমে কিছু প্রত্যন্ত শাখা ছাঁটাই করেছি এবং এর পরিণতি কী তা আমি সত্যিই জানি না (আমি গিট এক্সটেনশনে "ছাঁটাই দূরবর্তী শাখাগুলি" বোতামটি ক্লিক করেছি, এটি ভেবেছিল এটি কোনও দূরবর্তী শাখা মুছে ফেলবে)।

অফিসিয়াল ডকুমেন্টেশনটি বলেছে "গিট-প্রুন - বস্তুর ডাটাবেস থেকে সমস্ত অপ্রজেয়যোগ্য বস্তু ছাঁটাই"। আমি এর অর্থ আসলে বুঝতে পারি না। আমি অনুমান করছি এটি সম্ভবত মার্জড শাখাগুলি সরিয়ে ফেলেছে তবে আমি সত্যই নিশ্চিত নই।



4
নজর দেওয়ার মতো হতে পারে git gc: git-scm.com/docs/git- প্রুনেও
কোভাক

উত্তর:


93

গিট এক্সটেনশনে "দূরবর্তী শাখাগুলি ছাঁটাই" git remote pruneকমান্ড কার্যকর করে, যা আপনার স্থানীয় দূরবর্তী ট্র্যাকিং শাখাগুলি সরিয়ে দেয় যেখানে শাখাটি আর রিমোটে নেই।

এখানে দেখুন: https://git-scm.com/docs/git-remote#git-remote-empruneem


সুতরাং এটি মূলত আপনার দূরবর্তীকে অগ্রাধিকার দেয় এবং আপনার দূরবর্তী শাখাগুলির সাথে মেলে আপনার স্থানীয়কে সামঞ্জস্য করে?
মধু

4
@ মনি না, এটি কেবল স্থানীয় দূরবর্তী ট্র্যাকিং শাখাগুলি সরিয়ে দেয় , সাধারণ শাখাগুলি স্পর্শ করা হয় না।
1615903

32

এটি কেবল আবর্জনা আপনার শাখা সংগ্রহ করে।

ঠ্যাটের অর্থ, যদি আপনার শাখার পূর্বপুরুষদের কোনওটিতে কোনও বস্তু (প্রতিশ্রুতিবদ্ধ) পৌঁছানো না যায়, তবে এটি গিট ডাটাবেসের জন্য সরানো হবে, এবং এর ফলে আর পৌঁছানো যায়নি।

এটি কেবল গিটের ভাণ্ডারটি একটু পরিষ্কার করে এটিকে হালকা করে তোলে।


4
ডকুমেন্টেশন অনুসারে, বাড়ির রক্ষণাবেক্ষণের জন্য যেমন কাজগুলি করা ভাল এটির git gcচেয়ে বরং একটি কাজ করা ভাল git pruneযা মূলত গিট প্রুনও করবে।
কোভাক

4
ডাউনভোট: এই উত্তর (এবং সেই বিষয়ে প্রশ্ন) বিভ্রান্ত করে git pruneএবং git remote prune। সেগুলি একই নয়, পরবর্তীকালে প্রকৃত শাখাগুলি পরিষ্কার করে দেওয়া হয় যা স্থানীয় শাখাগুলি ছোঁয়া ছাড়ার সময় দূরবর্তী অঞ্চলে আর নেই।
জবার্ট

12

ছাঁটাইটি রেপো-বেঁধে রয়েছে তা জানা গুরুত্বপূর্ণ । সবাই জানেন না যে আপনি আপনার স্থানীয় রেপোকে একাধিক রিমোটের সাথে সংযুক্ত করতে পারেন। উদাহরণস্বরূপ, আপনি একটি মুক্ত-উত্স প্রকল্পের সাথে কাজ করেন এবং কাঁটাচামচ দিয়ে কাজ করার জন্য প্রয়োগ করা হয় যখন এটি কার্যকর হয়।

সুতরাং, prune কমান্ড একটি রেপো নাম প্রয়োজন। বেশিরভাগ ক্ষেত্রে এটি হয় git remote prune originতবে আপনি আপনার রেপোকে যে কোনও কিছুতে কল করতে পারেন, এটি হওয়ার দরকার নেই origin


2

রিমোট বৈশিষ্ট্যযুক্ত শাখা থাকতে পারে যা আমরা তাদেরকে মাস্টারে মার্জ করার পরে সরানো হয়। আমরা পরিষ্কার করার উপায় হিসাবে বৈশিষ্ট্য শাখাগুলি মুছে ফেলতে পারি। তবে যদি আপনি স্থানীয় সিস্টেমে মুছে ফেলা শাখাটি পরীক্ষা করে দেখেছেন এবং ট্র্যাকিং হিসাবে স্থিতিতে সেট করেছেন তবে গিট টান সেই স্থানীয় শাখাগুলি মুছে ফেলবে না (কারণ সেগুলি ইতিমধ্যে সার্ভার থেকে সংযোগ বিচ্ছিন্ন হয়ে গেছে)। এই জাতীয় স্থানীয় এতিম শাখা পরিষ্কার করতে, git pruneকমান্ড সাহায্যের জন্য আসবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.