আমি একটি শাখা মার্জ করার পরে মুছে ফেলা উচিত?


94

একটি শাখা মার্জ করার পরে, আপনি কি এটি সংগ্রহস্থল থেকে মুছবেন?
তবে, এটি একটি ভাল অনুশীলন না?

আমি সাধারণত প্রচুর শাখা তৈরি করি, যেহেতু আমি আমার বর্তমান প্রকাশটি ভাঙতে চাই না এবং জিনিসগুলি যথাযথভাবে রাখার জন্য আমি সেগুলি মুছতে চাই।
তবে, আপনি যদি অ্যাসেমব্লা বা গিটহাবের সাথে কাজ করেন তবে পুরানো শাখাগুলি থেকে আপনার সংযুক্তির অনুরোধগুলি সাইটে সংরক্ষণ করা হবে, সুতরাং আপনি যদি এগুলি মুছেন তবে আপনি একটি ত্রুটি পাবেন কারণ এটি তাদের আনতে সক্ষম হবে না ...

সাধারণত কিভাবে এটি পরিচালনা করবেন?

উত্তর:


72

একত্রীকরণ করা শাখাগুলি মুছে ফেলার ক্ষেত্রে কোনও সমস্যা নেই the সমস্ত কমিটগুলি এখনও ইতিহাসে পাওয়া যায় এবং এমনকি গিটহাব ইন্টারফেসেও তারা প্রদর্শিত হবে (দেখুন, উদাহরণস্বরূপ, এই পিআরটি যা একটি কাঁটাচামচকে বোঝায় আমি PR গ্রহণের পরে মুছে ফেলা হয়েছে)।


আপনি বলেছিলেন যে সমস্ত কমিট এখনও ইতিহাসে উপলব্ধ। আমি যদি github.com এ কোনও প্রকল্প দেখি তবে আমি দেখতে পাচ্ছি যে এটি সত্য। তবে ম্যাকের গিথুব ডেস্কটপ অ্যাপ্লিকেশনটিতে দেখে মনে হচ্ছে যে আপনি মার্জ হওয়া শাখার প্রতিশ্রুতিবদ্ধ ইতিহাসটি আর দেখতে পাবেন না। আমি কি ভুল করছি?
টাইপ

আমি যুক্ত করব যে আপনি যদি গিট ক্লায়েন্ট ব্যবহার না করে থাকেন, বিশেষত কোনও গুইয়ের সাথে এটি ব্যবহার না করে থাকেন তবে শাখাগুলি থাকা আপনার লগটি ভালভাবে বোঝার জন্য সহায়ক হতে পারে। এটি হ'ল যেহেতু আপনার কাছে গিথুব / গীতলাব / অন্যান্য গুই নেই, শাখার নাম রাখার ফলে ইতিহাসের পাশাপাশি ইতিহাসের রেফারেন্সের একটি সহজ জায়গা থাকতে পারে - যা অন্যথায় শাখাটি মোছার দ্বারা হারিয়ে গেছে। কেউ দয়া করে আমাকে জানাবেন যদি এই শেষ বিবৃতিটি ভুল হয়।
রাজ

@ রাজ আপনার কাছে ইতিমধ্যে এটি Merge branch fix-foo-barপ্রতিশ্রুতি বার্তা আকারে রয়েছে । চেষ্টা করুন git log --grep="Merge branch", তারপরে আপনার নিজের আগ্রহের অ্যাঙ্করগুলি ফেলে দিন git checkout -b curious-change। এছাড়াও, কোনও শাখা মুছে ফেলার সময় কিছুই হারিয়ে যায় না - কেবলমাত্র "ব্রাঙ্কনাম → কম্যাশ" পয়েন্টার ছাড়া (যা একটি শাখা আসলে এটি স্থানীয় বা দূরবর্তী বিষয় বিবেচনা করে না)।
ulidtko

@ ফ্রেড-ফু এই প্রশ্নটি যদি একটি ভাল অনুশীলন হয় তবে উত্তর দেওয়া হয় না। (আমার একই প্রশ্ন রয়েছে)
এস্পার

27

আমি অবশ্যই আমার শাখাগুলিকে মার্জ করার পরে পরিষ্কার করেছি clean

আমরা কাজে গিটল্যাব ব্যবহার করি এবং অনুরোধগুলি মার্জ করি, তাই শাখাগুলি সম্পর্কে historicalতিহাসিক তথ্য সেখানে সংরক্ষণ করা হয়; আমার তাদের শাখা তালিকাটি বিশৃঙ্খলা করার দরকার নেই এবং যখন আমি সহকর্মীর কাঁটাচামড়ার দিকে তাকান, আদর্শভাবে আমি কেবল তাদের বর্তমান সক্রিয় বিকাশের শাখা দেখতে চাই। যদি আমি তাদের শাখায় কিছু কোড দেখার চেষ্টা করি, তবে আমি বর্তমানে কয়েকটি সক্রিয় শাখাগুলির মধ্যে সন্ধান করতে সক্ষম হতে চাই এবং প্রতিটি বৈশিষ্ট্য বা ঠিক নেই যে তারা কখনও কাজ শুরু করেছে।

উপরেরগুলি বিটবাকেট এবং গিটহাবের ক্ষেত্রেও প্রযোজ্য।

শাখা-পরবর্তী মার্জটি মুছে ফেলার জন্য আপনার একমাত্র কারণ হ'ল আপনি যদি জানেন যে কোনও প্রদত্ত বৈশিষ্ট্যটি কোথায় শেষ হয়েছে তবে মার্জ কমিটগুলি (এবং git merge --no-ffযদি আপনি সত্যিই চান) এটি অপ্রাসঙ্গিক করে তোলে।


4
স্পষ্টতই গিটহাব সর্বদা --no-ff করে তাই আমরা এই ঘটনাটি হারাব না যে এই পরিস্থিতিতেও এটি একটি শাখা ছিল।
জোয়েটউইল

7
@ জোয়েটউইলডাল: ধরে নিচ্ছেন আপনি শাখাটি মার্জ করার জন্য গিটহাবের নিজস্ব ইন্টারফেস ব্যবহার করছেন, হ্যাঁ!
আশেরা

1

শুধু যত্ন নিতে
আপনার মোছা শাখা সকল হাইপারলিঙ্ক URL গুলি উল্লেখ করা হবে না ভাঙা

উদাহরণস্বরূপ
আপনি যদি branch_feature_xআপনার রেপো থেকে শাখাটি মুছে
ফেলেন তবে এই শাখার সংশ্লিষ্ট হাইপারলিংক URL টি নষ্ট হয়ে যাবে
https://github.com/username/project/tree/branch_feature_x


0

গিটার দৃষ্টিকোণ থেকে কেবল স্পষ্ট করার জন্য, শাখাটি কিছু প্রতিশ্রুতিবদ্ধতার লিঙ্ক । শাখাটি মোছার মাধ্যমে, আপনি গিট রেপো থেকে কমিটগুলি মুছবেন না। অবশ্যই গিট আবর্জনা সংগ্রাহকের মাধ্যমে কিছু সময়ের পরে পৃথক পৃথক কমিটগুলি পরিষ্কার করা হবে।

এফওয়াইআই: আমরা সাধারণত বিটবাকেট ইন্টারফেসের মাধ্যমে শাখাকে মাস্টারে মার্জ করে যাচ্ছি। আপনি delete feature branch after mergeপতাকা সেট করতে পারেন ।

আপনার যদি খুব পুরানো শাখাগুলি মোকাবেলা করার প্রয়োজন হয় তবে আপনার কিছু উপযোগিতা সন্ধান করতে পারে, উদাহরণস্বরূপ এটি

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