আমি কীভাবে একটি জটিল মার্জটির কাছে যাই approach


25

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

শাখার উভয় পক্ষের গুরুত্বপূর্ণ পরিবর্তনগুলি সংরক্ষণ করার সময় আমি কীভাবে এই মার্জটি নিরাপদে করব?


দুর্দান্ত প্রতিক্রিয়ার জন্য প্রত্যেককে ধন্যবাদ। আমি গিট-আইমারেজকে যেতে যাচ্ছি এবং যদি তা অগোছালো হয়ে যায় তবে আমি একটি নতুন শাখার পদ্ধতি ব্যবহার করব!
ভ্লাদ স্প্রেজ

কেউ কি git cherry-pickএখানে ব্যাখ্যা করতে পারবেন না কেন ?
সন্তোষ কুমার

1. প্রার্থনা। 2. পুনর্বাসন। 3. পরীক্ষা। 4. মার্জ।
কে_

1
আমি এই পরিস্থিতিতে ছাড় দেওয়া পছন্দ করি কারণ এটি প্রতিশ্রুতিবদ্ধ হয়ে প্রতিশ্রুতিবদ্ধ হবে। আপনি মার্জড কোডটি উপলভ্য করার আগে এটি আপনাকে নতুন বৈশিষ্ট্যটিকে স্কোয়াশ করার অনুমতি দেবে। YMMV।
স্টিফেন

উত্তর:


27

এর হৃদয়ে, কীভাবে কোডের দুটি (সম্ভবত অ-সামঞ্জস্যপূর্ণ) টুকরো একত্রিত করা যায় এটি একটি বিকাশ সমস্যা , সংস্করণ নিয়ন্ত্রণ সমস্যা নয়। গিট মার্জ কমান্ড এই প্রক্রিয়াটিতে সহায়তা করতে পারে তবে এটি সমস্যার আকারের উপর নির্ভর করে।

প্রথমে বেসের সাথে উভয় সংস্করণ তুলনা করা সবচেয়ে বেশি অর্থবোধ করে। এটি আপনাকে এটি এগিয়ে নিয়ে যাওয়ার সেরা কৌশল সম্পর্কে ধারণা দেবে। প্রতিটি শাখায় পরিবর্তনের প্রকৃতি এবং ওভারল্যাপের ভিত্তিতে আপনার দৃষ্টিভঙ্গি আলাদা হতে পারে।

আদর্শ দৃশ্যের কল্পনা করুন: আপনি আবিষ্কার করবেন যে মূল শাখা এবং বৈশিষ্ট্য শাখা প্রতিটি কোডের কেবলমাত্র পারস্পরিক একচেটিয়া অংশে পরিবর্তন করেছে, যাতে আপনি কেবল সমস্ত পরিবর্তন সম্পাদন করতে পারেন এবং যেতে ভাল হতে পারেন।

অবশ্যই, এটি প্রায় অবশ্যই ঘটবে না, তবে প্রশ্নটি হল: এই আদর্শ পরিস্থিতিটি কতটা সরানো হবে? অর্থাত্ পরিবর্তনগুলি কীভাবে মিলিত হয়?

এছাড়াও, পুরানো বৈশিষ্ট্য শাখাটি কত পরিপক্ক ছিল? এটি কি ভাল কাজের অবস্থায় ছিল, না (বা অজানা)? বৈশিষ্ট্যটি কত শেষ হয়েছিল?

যদি গত শাখায় মূল শাখায় প্রাসঙ্গিক কোডটি অনেক পরিবর্তন হয়ে থাকে বা বৈশিষ্ট্যটি খুব পরিপক্ক অবস্থায় না থাকে তবে আমি সর্বশেষের একটি নতুন কাঁটা তৈরি করতে এবং ম্যানুয়ালি পুরাতন বৈশিষ্ট্যটিকে আবার যুক্ত করে বিবেচনা করতে পারি। এটি আপনাকে এটির কাজ করার জন্য একটি বর্ধিত পদ্ধতির অনুমতি দেবে।

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


+1 "আমি সর্বশেষের একটি নতুন কাঁটা তৈরি বিবেচনা করতে এবং ম্যানুয়ালি পুরাতন বৈশিষ্ট্যটিকে আবার অন্তর্ভুক্ত করে বিবেচনা করতে পারি"
মিকা

1
প্রথম মূল প্রশ্নটি: পুরানো বৈশিষ্ট্যটি শাখাটি কী তৈরি করে? এটা কি চালায়? যদি না হয় তবে আপনার মার্জটি পরীক্ষা করা খুব কঠিন হতে চলেছে।
Moz

22

আমার সীমিত গিট অভিজ্ঞতায় আমি বলতে পারি যে মাঝে মাঝে মাস্টার বিচ্ছিন্নতা বিন্দু থেকে খুব দূরে চলে গেলে আবার বৈশিষ্ট্য শাখাটি আবার চালু করা দ্রুত হয়।

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

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

এক্ষেত্রে সিনিয়রদের সাথে জুড়ি প্রোগ্রামিং হ'ল সর্বোত্তম কেস দৃশ্যাবলী, কোডটি আরও ভালভাবে জানতে আপনাকে সহায়তা করবে।
এমনকি আপনি যদি মার্জ সংঘাত এবং পরীক্ষার সময়টিকে একাউন্টে নেন তবে এটি আরও দ্রুত পরিণত হতে পারে!

আমি ধৈর্য ধরেছিলাম যে অন্তত মার্জ করার চেষ্টা করা স্পষ্টতই সবচেয়ে ভাল কাজ। যদি এটি ব্যর্থ হয় বা খুব কঠিন হয়ে পড়ে, তবে চেরি বাছাই করে দেখুন, যদি ভুল হয় তবে ম্যানুয়াল পথে যান।


2
অবশ্যই সঠিক পদ্ধতির নয়।
অ্যান্ডি

12
না, এটি সঠিক পদ্ধতির - যদি আপনার একটি প্রাচীন শাখা থাকে এবং আপনি কোডটি জানেন না, মার্জ করার চেষ্টা করা খুব সফল হবে না এবং এটি খুব ঝুঁকিপূর্ণ হতে চলেছে। মূলত যে পরিবর্তনগুলি হয়েছিল সেগুলি নির্ধারণ করা, তারা নতুন কোডের সাথে এমনকি প্রাসঙ্গিক কিনা তা তদন্ত করে এবং তারপরে সেগুলি বোঝার জন্য প্রয়োগ করা এটি করার উপায়। এটি একটি ম্যানুয়াল পদ্ধতি, তবে এই পরিস্থিতিতে কেবল নিরাপদে নেওয়া উচিত to অবশ্যই, আমি এখনও প্রথমে একীভূত করার চেষ্টা করেছি, কেবল কী ঘটেছিল তা দেখার জন্য, এবং আমি শাখায়ও কতটা পরিবর্তন ঘটেছে তা দেখার জন্য লগটি পরীক্ষা করে দেখি - তুচ্ছ হতে পারে।
gbjbaanb

10
@ ডেভিডপ্যাকার: আমার মনে হয় না যে গ্যাভিয়ানোগ্রিফনি সমস্ত কাজকে ওভারবোর্ডে ফেলে দেওয়ার পরামর্শ দেয়। তিনি পুরানো শাখা থেকে পরিবর্তনগুলি ম্যানুয়ালি বিকাশের বর্তমান লাইনে স্থানান্তরিত করার পরামর্শ দেন, ধাপে ধাপে। এটি পুরানো ইতিহাস ফেলে দেবে, আরও বেশি নয়।
ডক ব্রাউন

3
@ ডেভিডপ্যাকার 1 ম: শাখাটি এক বছরের পুরানো, দ্বিতীয়: এই লোকটি সমাপ্তির কাজটি সম্পন্ন করে, এটি কোডটি কিছুতেই জানে না। এই 2 টি কারণের ভিত্তিতে একটি ম্যানুয়াল পুনরায় প্রয়োগ হ'ল কার্যটির কাছে আসার একমাত্র বাস্তব উপায়। কেউই পুরানো শাখার টিপ রিভিশনের সাধারণ কপি-পেস্টের পরামর্শ দিচ্ছে না।
gbjbaanb

5
@ ডেভিডপ্যাকার: সংঘাতগুলি বিপজ্জনক হয়ে উঠতে পারে - যদি আপনি প্রোগ্রামটি আবার একটি সংকলনযোগ্য এবং পরীক্ষামূলক অবস্থায় পাওয়ার আগে একবারে একবারে সমাধান করতে হয়। ওপি এখানে এক ধরণের পরিস্থিতি আশা করে। যদি আপনি এই "অল-অ-কিছুই না" পরিস্থিতি এড়াতে দক্ষ পদ্ধতিতে গিট ব্যবহার করা সম্ভব বলে মনে করেন, তবে আপনি কেন নিজের উত্তরটি সম্পাদনা করবেন না এবং ওপিকে কীভাবে এটি সম্পাদন করা যায় তা বলবেন না?
ডক ব্রাউন

16

গিট-আইমেজ ঠিক এই উদ্দেশ্যে ডিজাইন করা হয়েছে। এটি একটি গিট সরঞ্জাম যা বর্ধিত মার্জ করার জন্য একটি পদ্ধতি সরবরাহ করে। ক্রমবর্ধমানভাবে মার্জ করে, আপনাকে কেবল দুটি সংস্করণের মধ্যে সংঘর্ষের মোকাবিলা করতে হবে, এর চেয়ে বেশি আর কখনও নয়। তদতিরিক্ত, স্বতন্ত্র চেঞ্জসেটগুলি আরও ছোট হওয়ায় স্বয়ংক্রিয়ভাবে সংখ্যার সংখ্যক সংখ্যক সংখ্যক মার্জ পরিবাহিত হতে পারে।


6

এক বছরের বাসি শাখায় মূললাইন মাথাটি মার্জ করার চেষ্টা হতাশার একটি অনুশীলন হতে পারে এবং আপনার কপাল দিয়ে ডেস্কের উপরের গভীরটিকে গভীর করতে পারে।

মূল লাইনটি কয়েক মাস ধরে এটি কোথায় যায় তা পায়নি। এটিরও বিকাশ এবং প্রকাশ ছিল। এক একীকরণের একীভূতকরণে এটি সর্বশেষে আনার চেষ্টা অপ্রতিরোধ্য হতে পারে।

পরিবর্তে, বাসি শাখা বিভক্ত হওয়ার পরে প্রথম বৈশিষ্ট্যে মার্জিন করে ফিচার থেকে মার্জ করে শুরু করুন। পান যে একত্রীকরণ কাজ। তারপরে পরবর্তী বৈশিষ্ট্যটি মার্জ করুন। ইত্যাদি। এই বৈশিষ্ট্যটি একত্রিত করে অনেকগুলি দ্বন্দ্ব ছাড়াই মার্জ হয়ে যাবে। এটি নিশ্চিত করা এখনও গুরুত্বপূর্ণ যে বাসি শাখার বর্তমান কার্যকারিতা মূললাইন যেদিকে গেছে তার সাথে সামঞ্জস্যপূর্ণ রয়েছে।

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

পুরানো বৈশিষ্ট্য বা প্রকাশের শাখাগুলি এখনও সেখানে উপস্থিত থাকলে এবং সহজেই অ্যাক্সেসযোগ্য হয় তবে এর বেশিরভাগই সহজ হবে (কিছু জায়গাগুলির শাখাগুলির নাম পরিষ্কার করার নীতি রয়েছে যা কিছু তারিখের চেয়ে পুরানো যাতে শাখাগুলির তালিকা অপ্রতিরোধ্য না হয় )।

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

অন্যদিকে, এটি অন্যান্য সংস্করণ নিয়ন্ত্রণ সিস্টেমের জন্যও কাজ করে। আমার মাঝে মাঝে একটি নির্দিষ্ট বৈশিষ্ট্যের জন্য এসএনএন-এর একটি নির্দিষ্ট গ্রুপকে একটি শাখায় (চেরি পিকিং) একীভূত করতে হবে, সেই বৈশিষ্ট্যটির সাথে কাজ করার জন্য শাখাটি ঠিক করে দেওয়া হয়েছিল, এবং তারপরে কেবল একটি পাইকারি এসএনএন করার চেয়ে এসএনএন কমিটের পরবর্তী গ্রুপটি একীভূত করতে হবে একত্রিত করে।

এক সময় করতে একটি Git না এখানে চেরি-বাছাই, এবং এটি আনয়ন অনুমতি দেয় নির্দিষ্ট করে, এই কিছু অসুবিধেও যে প্রক্রিয়া জটিল হতে পারে। চেরি পিকটি আপনি যে প্রতিশ্রুতি থেকে তুলেছেন সে সম্পর্কে তথ্য প্রদর্শন করবে না (আপনি এটি কমিটের বার্তায় সংযোজন করতে পারেন)। এটি ইতিহাসে কমিটগুলি ট্র্যাকিংকে আরও শক্ত করে তোলে।

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

One তিহাসিক প্রতিশ্রুতি থেকে বাসি শাখায় মাস্টার হয়ে যাওয়ার মূল কারণটি এটি রাখতে সক্ষম হবেন, যাকে আপনি যুক্তি দিয়ে বলতে পারেন এমন বাসি শাখার "ভবিষ্যতের ইতিহাস" বলতে পারেন। কার্যীয় কার্যকারিতা পুনরায় সংহত করার জন্য আপনি ইতিহাস থেকে মার্জগুলি স্পষ্টভাবে দেখতে পাবেন branch বৈশিষ্ট্যগুলি একইভাবে যুক্ত করা হচ্ছে তারা যেভাবে মাস্টার করছিল। এবং যখন আপনি শেষ হয়ে গেছেন এবং শেষ পর্যন্ত মাস্টার প্রধান থেকে বাসি শাখায় মার্জ করবেন , আপনি জানেন যে সমস্ত কিছু একত্রীকরণ করা হয়েছে এবং আপনি কোনও কমিট মিস করছেন না।


+1 এটি একটি আকর্ষণীয় সম্ভাব্য বিকল্প সমাধান যা বড় পরিবর্তনগুলি সংযোজন করতে মার্জ ব্যবহার করে। তবে, আমি একটি খারাপ দিক দেখতে পাচ্ছি: ধরুন আপনার বড় সংস্করণগুলি এবিসিডিই রয়েছে এবং আপনি বৈশিষ্ট্য শাখা এ 1 এগুলিতে অন্তর্ভুক্ত করতে চান BC কোডটি বিসি এবং ডি তে মার্জ করার প্রচুর অপচয় হতে পারে উদাহরণস্বরূপ, ডি থেকে ই থাকলে কী হত? একটি বিরাট ডিজাইনের পরিবর্তন যা বি, সি, এবং ডি ক্ষেত্রে ক্রমবর্ধমান পরিবর্তনকে অপ্রাসঙ্গিক করে? এছাড়াও, এটি আবার বৈশিষ্ট্যটি প্রথম স্থানে ছিল কত পরিণত তা নির্ভর করে। একটি কার্যকর সম্ভাব্য পদ্ধতির, তবে এর যথাযথতা শুরু করার আগে বিবেচনা করা উচিত।

1

পদক্ষেপ 1. কোড সম্পর্কে শিখুন, এর স্থাপত্য বিশ্লেষণ করুন এবং সর্বশেষ সাধারণ পূর্বপুরুষের পর থেকে উভয় শাখায় যে পরিবর্তন হয়েছে।

পদক্ষেপ ২. যদি বৈশিষ্ট্যটি বিস্তৃতভাবে স্বতন্ত্রভাবে উপস্থিত হয় এবং কোড, মার্জ, সংঘাতগুলি সংশোধন, পরীক্ষা, ফিক্স ইত্যাদির বিভিন্ন ক্ষেত্রগুলিকে স্পর্শ করে তবে এটি সুখী পথ, আপনি যেতে খুব ভাল pretty অন্যথায় পদক্ষেপ 3 এ যান

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

পদক্ষেপ ৪. উপরের আলোকে, সিদ্ধান্ত নিন যে কেবলমাত্র সেই অংশগুলিকে সংহত / চেরি-বাছাই / এমনকি কাট-পেস্ট করা উচিত যা বিরোধী নয় এবং বিরোধী টুকরোগুলি পুনরায় লিখছেন না, বা পুরো বৈশিষ্ট্যটি আবার স্ক্র্যাচ থেকে পুনরায় লিখতে হবে কিনা ।


0

১. একটি প্রধান বিকাশকারী / রিলিজ শাখা হিসাবে ব্যবহৃত শাখায় স্যুইচ করুন।

এটি সেই শাখা যা সিস্টেমে সর্বশেষ পরিবর্তন রয়েছে। হতে পারে master, core, dev, এটা কোম্পানী উপর নির্ভর করে। আপনার ক্ষেত্রে এটি সম্ভবত masterসরাসরি।

git checkout master
git pull

আপনার কাছে মূল বিকাশ শাখার সর্বশেষতম সংস্করণ জমে আছে তা নিশ্চিত করতে টানুন।

২. আপনার যে কাজটি শেষ করার কথা রয়েছে সেই শাখায় চেকআউট করুন এবং টানুন।

আপনার কাছে শাখার সর্বশেষতম সামগ্রী রয়েছে তা নিশ্চিত করার জন্য আপনি টানুন pull এটি স্থানীয়ভাবে প্রথমে তৈরি না করে সরাসরি যাচাই করে আপনি এটিতে master(বা মূল দেব শাখাটি যথাক্রমে) নতুন বিষয়বস্তু না রাখার বিষয়টি নিশ্চিত করেন।

git checkout <name of the obsolete branch>
git pull origin <name of the obsolete branch>

৩. প্রধান বিকাশ শাখাটি অচল শাখায় মার্জ করুন।

নিম্নলিখিত কমান্ডটি চালনার আগে, টাইপ করে git branchবা git statusআপনি অপ্রচলিত শাখায় রয়েছেন তা নিশ্চিত করুন।

git merge master

git mergeকমান্ড নির্দিষ্ট শাখা সামগ্রী একত্রীকরণ এই ক্ষেত্রে, চেষ্টা করবে master, শাখা আপনি বর্তমানে এ হয়।

উপর জোর দেওয়ার চেষ্টা করা হবে । একত্রীকরণের বিরোধগুলি হতে পারে, যা কেবলমাত্র আপনার দ্বারা সমাধান করা দরকার।

4. সংহত বিরোধগুলি সংশোধন করুন, সংঘাত সংশোধন করুন এবং চাপ দিন

সংযুক্তি সংঘাত সংশোধন করার পরে সমস্ত ফাইল যেখানে আছে সেখানে মঞ্চ, প্রতিশ্রুতিবদ্ধ এবং সংঘাতের সমাধানের দিকে ধাক্কা origin

git add .
git commit -m "fixed the merge conflict from the past year to update the branch"
git push

কমিটের জন্য git add .আপনি সমস্ত ফাইল মঞ্চে কল করতে পারেন । মার্জ সংঘাতের সাথে কাজ করার সময়, আপনি সমস্ত প্রয়োজনীয় ফাইল আপডেট করতে চান।

অতিরিক্ত নোট

মার্জ সংঘাতের সমাধান করা এক ক্লান্তিকর কাজ হতে পারে। বিশেষ করে যদি আপনি কোনও সংস্থায় নতুন হন। একা সমস্ত মার্জ সংঘাতগুলি সমাধান করার জন্য আপনার কাছে এমনকি সঠিক জ্ঞান নাও থাকতে পারে।

আপনার কাজ চালিয়ে যাওয়ার আগে সংঘটিত সমস্ত দ্বন্দ্বকে সাবধানে পর্যবেক্ষণ করতে এবং যথাযথভাবে ঠিক করার জন্য আপনার সময় নিন।


এটি ঘটতে পারে, আপনি এক বছরের পুরানো শাখায় কাজ শুরু করবেন, বর্তমান বিকাশের অবস্থাটিকে এতে মিশ্রিত করুন এবং কোনও মার্জ সংঘাত থাকবে না।

এটি ঘটে যখন সিস্টেমে বছরে অনেক পরিবর্তন হয়ে গেছে, কেউই সেই ফাইলগুলিকে স্পর্শ করেনি যা আসলে এক বছরের পুরানো শাখায় পরিবর্তিত হয়েছিল।


6
# 4 সম্ভাব্য সমস্যা। গত বছরের তুলনায় যদি প্রচুর পরিবর্তন ঘটে থাকে তবে পুরানো বৈশিষ্ট্যে বড় ধরনের পরিবর্তন প্রয়োজন হতে পারে। একত্রীকরণের মাধ্যমে এটি করার জন্য আপনাকে একসাথে সমস্ত কোডে বড় পরিবর্তন করতে হবে এবং আশা করা হচ্ছে এটি কার্যকর হয়, যা উন্নয়নের ভাল অভ্যাস নয়। এছাড়াও অসম্পূর্ণ বৈশিষ্ট্যটির অবস্থা কী ছিল কে জানে? আপনি অ-কার্যকারী কোডের একটি বিশাল গণ্ডগোলের সাথে শেষ করতে পারেন, এবং কে জানে যে এটি আসল বা আপনার করা পরিবর্তনগুলি নিয়ে সমস্যার কারণে হয়েছিল?

ডেভিড, যতক্ষণ না এই স্ট্যান্ডার্ড পদ্ধতির কাজ হবে ততক্ষণ তা ঠিক আছে, এবং ওপিকে প্রথমে এটি চেষ্টা করা উচিত। তবে অবশ্যই এই "সর্বদাই বা কিছুই" পদ্ধতিতে পরিচালনা করতে বর্ণিত পরিস্থিতিতে অনেকগুলি সংহত দ্বন্দ্ব হওয়ার ঝুঁকি অবশ্যই রয়েছে।
ডক ব্রাউন

@ dan1111 যে মার্জ সংঘাত রয়েছে তা সম্পূর্ণরূপে ঠিক আছে এবং আসলে তাদের মধ্য দিয়ে যাওয়াটাই যাওয়ার উপায়। যেহেতু শাখাটি এক বছরের জন্য অপরিবর্তিত ছিল, আপনি নিশ্চিতভাবে নিশ্চিত হতে পারেন যে এটি গুরুত্বপূর্ণ কিছু নয় এবং সিস্টেমটির বেশিরভাগ অংশকে প্রভাবিত করবে না। সুতরাং শাখাটি এক বছর পিছনে থাকলেও, আপনি কোনওটিই সংঘাতের বিরোধ হিসাবে কম 2 হিসাবে পেতে পারেন।
অ্যান্ডি

4
এই শাখাটি গুরুত্বহীন বলে অনুমান করা অনিয়ন্ত্রিত। এটি একটি মৌলিক নকশা পরিবর্তন হতে পারে যা পরিত্যক্ত ছিল এবং এখন আবার বাছাই করা হচ্ছে। এটা কিছু হতে পারে। আপনি ঠিক এটি হয় পারে সহজ ব্যাপার হতে হবে এবং সেখানে পারে যে ক্ষেত্রে আপনার উত্তর সঠিক হবে - অল্পই অথবা কোনো দ্বন্দ্ব হবে। তবে এটাই একমাত্র সম্ভাবনা নয়।

@ dan1111 যদি কেউ এক বছরের জন্য পৃথক শাখায় কোনও বৈশিষ্ট্যের স্থান স্পর্শ না করে তবে এটি সিস্টেমের পরিবর্তনের প্রতিফলন ঘটবে না। এটি অপ্রচলিত (6+ মাস বয়সী) শাখাগুলির সাথে আমার নিজের অভিজ্ঞতা থেকে আসে।
অ্যান্ডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.