গিটহাব প্রবাহে, অন্য বৈশিষ্ট্য শাখায় বৈশিষ্ট্য শাখার ভিত্তি স্থাপন করা ঠিক আছে কি?


22

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

যাইহোক, আমার বর্তমান কাজটি অন্য কোনও ইস্যুতে কাজ করছে যা নির্ভর করে feature-branch-Aঅন্য শাখা থেকে আমার শাখা তৈরি করা কোশার বা এটি গিটহাব প্রবাহের চেতনার বিপরীতে?

বিকল্পটি হ'ল মাস্টারের উপর আমার শাখাটি বেস করা এবং feature-branch-A(ঘন ঘন) থেকে পরিবর্তনগুলিতে মার্জ হওয়া ।

গিটহাব প্রবাহে কোন বিকল্পটি পছন্দ করা হয়?

উত্তর:


24

আমি যখন কোনও বৈশিষ্ট্য শাখা থেকে শাখা করি তখন আমি সেই কর্মপ্রবাহটি অনুসরণ করি:

  1. feature-branch-Bথেকে তৈরি করুনfeature-branch-A
  2. কাজ feature-branch-B
  3. feature-branch-Aশাখার পরে যদি আরও কমিট যোগ করা feature-branch-Bহয় তবে পুনরায় চালু করুনfeature-branch-A
  4. কাজ শেষ করুন feature-branch-Bএবং এতে feature-branch-Aএকত্রিত হওয়া পর্যন্ত অপেক্ষা করুন master
  5. পরে feature-branch-Aমধ্যে মিশে গিয়ে তৈরি হয় master, রি-বেসের ফলে feature-branch-Bসম্মুখেরmaster
  6. মার্জ feature-branch-Bমধ্যেmaster

উপরের ওয়ার্কফ্লো অনুসরণ করে এটি প্রদর্শিত হবে যে আপনি মার্জ masterহওয়ার পরে থেকে feature-branch-Aব্রাঞ্চ করেছিলেন। feature-branch-Aকাজ শুরু করার জন্য আপনাকে মার্জ হওয়া পর্যন্ত অপেক্ষা করতে হবে না feature-branch-B। তবুও, আপনি কোনও জটিল গাছ ছাড়াই একটি পরিষ্কার ইতিহাস পাবেন।


ঠিক এই উত্তরটি আমি খুঁজছিলাম! আপনি আমাকে বাছাইয়ের মাথা ব্যাথা বাঁচিয়ে দিয়েছেন, ধন্যবাদ!
ভ্যানস প্যালাসিও

ইতোমধ্যে প্রকাশিত কমিটগুলি রিবাজ
Sebi2020

8

আমি মনে করি আপনি যদি অন্য কোনও বৈশিষ্ট্যে বৈশিষ্ট্যটি তৈরি করেন তবে এটি পুরোপুরি ঠিক আছে।

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


7

গিট-প্রবাহকে সম্বোধন করার উদ্দেশ্যে একটি মূল বিষয় হ'ল প্রদত্ত শাখার ভূমিকা সম্পর্কে কীভাবে এটি শাখা করে এবং একত্রে মিশে যায় সে সম্পর্কে যুক্তিযুক্ত দক্ষতা।

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

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

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

  1. বৈশিষ্ট্য থেকে শাখা
  2. ধারণা অন্বেষণ
  3. বৈশিষ্ট্যে মার্জ করুন

আপনি যা এড়াতে চান তা হ'ল এমনটি যা দেখায়:

  1. প্রয়োজনীয় বৈশিষ্ট্য থেকে শাখা
  2. কোড কাজ
  3. একবার ডেভ থেকে মার্জ করুন-প্রয়োজনীয় বৈশিষ্ট্যটি সম্পূর্ণ হয়ে যায়
  4. বৈশিষ্ট্য শাখায় কার্যকারিতা (এবং অতিরিক্ত কমিট) যাচাই করুন
  5. দেবকে একীভূত করুন

কারণটি হল যে শুরু এবং শেষটি মেলে না - এটি কী এবং কী তা বোঝা কিছুটা শক্ত করে তোলে। অসম্ভব নয়, তবে কারও ভূমিকা বোঝার জন্য এটি কিছুটা বেশি সময় নেয়।

তবে, যদি এই নতুন বৈশিষ্ট্যটি এমন কোড নির্ভর করে যা এখনও ডেভের মধ্যে পাওয়া যায় নি, প্রবাহটি হওয়া উচিত:

  1. দেব থেকে শাখা
  2. প্রয়োজনীয় বৈশিষ্ট্য থেকে মার্জ করুন
  3. কোড কাজ
  4. একবার ডেভ থেকে মার্জ করুন-প্রয়োজনীয় বৈশিষ্ট্যটি সম্পূর্ণ হয়ে যায়
  5. বৈশিষ্ট্য শাখায় কার্যকারিতা (এবং অতিরিক্ত কমিট) যাচাই করুন
  6. দেবকে একীভূত করুন

নোট করুন যে এটি ডেভ থেকে একটি শাখা দিয়ে শুরু হয় এবং দেবের সাথে একত্রীকরণের সাথে শেষ হয়।

যা যা বলেছিল, সম্ভবত সবচেয়ে ভাল কাজটি হ'ল এক বৈশিষ্ট্য থেকে অন্য কোনও বৈশিষ্ট্যে মার্জ করা থেকে বিরত থাকা। বৈশিষ্ট্যটি শাখা করুন, প্রিলিমিনারিগুলির যা প্রয়োজন তা করুন ... এবং অপেক্ষা করুন।

  1. দেব থেকে শাখা
  2. কোড কাজ
  3. একবার ডেভ থেকে মার্জ করুন-প্রয়োজনীয় বৈশিষ্ট্যটি সম্পূর্ণ হয়ে যায়
  4. বৈশিষ্ট্য শাখায় কার্যকারিতা (এবং অতিরিক্ত কমিট) যাচাই করুন
  5. দেবকে একীভূত করুন

এটি শাখা এবং কোডের সবচেয়ে স্থিতিশীল সেট সরবরাহ করে।

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


আপনার তৃতীয় পদক্ষেপের সেটগুলিতে, নেতিবাচক দিকটি হল 1 ধাপে কিছু "ডমি কমিট" থাকা দরকার। আমার পরিস্থিতিতে, required-featureএকীভূত না হওয়া পর্যন্ত প্রতিশ্রুতিবদ্ধ হওয়ার মতো আমার কাছে দরকারী কিছু নেই
বোরেক বার্নার্ড

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

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

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

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

1

একটি বৈশিষ্ট্য শাখা সাধারণত ট্রাঙ্কের তুলনায় কম স্থিতিশীল হিসাবে বিবেচনা করা হয় (বিকাশ / মাস্টার), সুতরাং আপনি যদি নিজের কাজটি বন্ধ রাখেন তবে আপনি সম্ভবত নিজেকে স্বাভাবিকের চেয়ে আরও অন্তর্নিহিত পরিবর্তনের অধীনে রাখবেন।

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

বলেছিল, এর বিরুদ্ধে কোনও কঠোর নিয়ম নেই। এগুলি সর্বোপরি নিদর্শন এবং সর্বোত্তম অনুশীলন।

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

সুতরাং আমি যদি আপনার জুতোতে থাকি এবং বৈশিষ্ট্যটি সম্পন্ন না হওয়া অবধি কাজটি স্থগিত করতে পারি বা প্রথমে অন্য কিছু না করে, আমি তা করব।

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