CodeGym /Java Blog /এলোমেলো /বিভ্রান্তি ছাড়াই টিমওয়ার্ক: গিট-এ ব্রাঞ্চিং কৌশলগুলি বো...
John Squirrels
লেভেল 41
San Francisco

বিভ্রান্তি ছাড়াই টিমওয়ার্ক: গিট-এ ব্রাঞ্চিং কৌশলগুলি বোঝা

এলোমেলো দলে প্রকাশিত

ভূমিকা

সফ্টওয়্যার বিকাশে সংস্করণ নিয়ন্ত্রণ ব্যবস্থার জন্য গিট প্রকৃত শিল্পের মান হয়ে উঠেছে। গিট কী এবং কীভাবে শুরু করবেন সে সম্পর্কে আপনার প্রথমে আমার নিবন্ধটি পড়া উচিত । আপনি এটা পড়েছেন? চমৎকার, চলুন শুরু করা যাক! বিভ্রান্তি ছাড়াই টিমওয়ার্ক: গিট - 1-এ ব্রাঞ্চিং কৌশলগুলি বোঝাএটি পছন্দ করুন বা না করুন, লিনাস টোভাল্ডস দ্বারা তৈরি এই সরঞ্জামটি অবসরে যাচ্ছে না। সুতরাং, ডিস্ট্রিবিউট করা দলগুলি কীভাবে গিট-এর সাথে কাজ করে এবং এর জন্য তাদের কোন শাখার কৌশল বেছে নেওয়া উচিত সে সম্পর্কে কথা বলা বোধগম্য। এটি একটি অমূলক প্রশ্ন নয়। একটি নতুন ডেভেলপমেন্ট টিমকে একত্রিত করার সময় যা আগে একসঙ্গে কাজ করেনি, ব্রাঞ্চিং কৌশলটি প্রায়শই সিদ্ধান্ত নেওয়ার প্রথম জিনিসগুলির মধ্যে একটি। এবং কিছু লোকের মুখে ফেনা উঠবে প্রমাণ করার জন্য যে একটি কৌশল অন্যটির চেয়ে ভাল। সুতরাং, আমি তাদের সম্পর্কে কিছু সাধারণ তথ্য আপনাকে জানাতে চাই।

ব্রাঞ্চিং কৌশল কি প্রয়োজনীয়?

তারা সত্যিই প্রয়োজনীয়. খুব প্রয়োজনীয়. কারণ দল যদি কোনো বিষয়ে একমত না হয়, তাহলে দলের প্রতিটি সদস্য যা চায় তা করবে:
  • যে কোন শাখায় কাজ করা
  • নির্বিচারে অন্যান্য শাখায় একীভূত করা
  • কিছু শাখা মুছে ফেলা হচ্ছে
  • নতুন তৈরি করা
  • এবং তাই প্রতিটি দলের সদস্য একটি অনিয়ন্ত্রিত প্রবাহে কাজ করবে।
সেজন্য নীচে বিবেচনা করার জন্য আমাদের তিনটি কৌশল রয়েছে। চলো যাই!

গিটহাব ফ্লো

বিভ্রান্তি ছাড়াই টিমওয়ার্ক: গিট - 2-এ শাখার কৌশলগুলি বোঝাএই ব্রাঞ্চিং কৌশলটি, অদ্ভুতভাবে যথেষ্ট, গিটহাবে পছন্দ করা হয় :) এটি নিয়মের একটি সেট সহ আসে :
  1. মাস্টার শাখার কোড ভাঙ্গা যাবে না। এটি যে কোনো সময় স্থাপনের জন্য প্রস্তুত হওয়া উচিত। অর্থাৎ, আপনি অবশ্যই সেখানে এমন কোড রাখবেন না যা আপনাকে প্রকল্প তৈরি করতে এবং সার্ভারে স্থাপন করতে বাধা দেবে।
  2. আপনি যখন নতুন কার্যকারিতা নিয়ে কাজ করার পরিকল্পনা করেন, তখন আপনাকে মাস্টার শাখার উপর ভিত্তি করে একটি নতুন বৈশিষ্ট্য শাখা তৈরি করতে হবে এবং এটিকে একটি অর্থপূর্ণ নাম দিতে হবে। আপনার কোড স্থানীয়ভাবে কমিট করুন এবং নিয়মিতভাবে রিমোট রিপোজিটরিতে একই শাখায় আপনার পরিবর্তনগুলি পুশ করুন।
  3. একটি পুল অনুরোধ খুলুন (আপনি এখানে পুল অনুরোধগুলি সম্পর্কে পড়তে পারেন ) যখন আপনি মনে করেন যে কাজটি প্রস্তুত এবং মাস্টার শাখায় একত্রিত করা যেতে পারে (বা আপনি যদি অনিশ্চিত হন তবে কাজটি সম্পন্ন করার বিষয়ে প্রতিক্রিয়া পেতে চান)।
  4. পুল অনুরোধে নতুন বৈশিষ্ট্যটি অনুমোদিত হওয়ার পরে, এটি মাস্টার শাখায় মার্জ করা যেতে পারে।
  5. যখন পরিবর্তনগুলি মাস্টার শাখায় একত্রিত করা হয়, তখন সেগুলিকে অবিলম্বে সার্ভারে স্থাপন করা উচিত৷
গিটহাব ফ্লো অনুসারে, আপনি নতুন কিছু নিয়ে কাজ শুরু করার আগে, এটি একটি ফিক্স বা একটি নতুন বৈশিষ্ট্য হোক, আপনাকে মাস্টারের উপর ভিত্তি করে একটি নতুন শাখা তৈরি করতে হবে এবং এটিকে একটি উপযুক্ত নাম দিতে হবে। এর পরে, বাস্তবায়নের কাজ শুরু হয়। আপনার একই নামের সাথে দূরবর্তী সার্ভারে প্রতিনিয়ত কমিট জমা দেওয়া উচিত। আপনি যখন উপসংহারে পৌঁছেছেন যে সবকিছু প্রস্তুত, আপনাকে মাস্টার শাখায় একটি টান অনুরোধ তৈরি করতে হবে। তারপরে কমপক্ষে একজন বা আরও ভাল, "অনুমোদন" ক্লিক করার আগে দুজন লোকের এই কোডটি দেখা উচিত। সাধারণত, প্রকল্পের দলের নেতৃত্ব এবং একজন দ্বিতীয় ব্যক্তির অবশ্যই একবার নজর দেওয়া উচিত। তারপর আপনি পুল অনুরোধ সম্পূর্ণ করতে পারেন. গিটহাব ফ্লো প্রজেক্টে একটানা ডেলিভারি (সিডি) চালানোর জন্যও পরিচিত । এর কারণ যখন পরিবর্তনগুলি মাস্টার শাখায় যায়, তখন সেগুলিকে অবিলম্বে সার্ভারে স্থাপন করা উচিত৷

গিটফ্লো

বিভ্রান্তি ছাড়াই টিমওয়ার্ক: গিট - 3-এ ব্রাঞ্চিং কৌশলগুলি বোঝাপূর্ববর্তী কৌশল (GitHub ফ্লো) এর মূলে খুব জটিল নয়। দুটি ধরণের শাখা রয়েছে: মাস্টার এবং বৈশিষ্ট্য শাখা। তবে গিটফ্লো আরও গুরুতর। অন্তত, উপরের ছবিটি যে পরিষ্কার করা উচিত :) তাই কিভাবে এই কৌশল কাজ করে? সাধারণভাবে, GitFlow দুটি স্থায়ী শাখা এবং বিভিন্ন ধরনের অস্থায়ী শাখা নিয়ে গঠিত। গিটহাব ফ্লো-এর প্রেক্ষাপটে, মাস্টার শাখাটি স্থায়ী এবং অন্যগুলি অস্থায়ী। অবিরাম শাখা
  • মাস্টার: কেউ যেন এই শাখায় কিছু স্পর্শ বা ধাক্কা না দেয়। এই কৌশলটিতে, মাস্টার সর্বশেষ স্থিতিশীল সংস্করণের প্রতিনিধিত্ব করে, যা উত্পাদনে ব্যবহৃত হয় (অর্থাৎ, একটি বাস্তব সার্ভারে)
  • উন্নয়ন: উন্নয়ন শাখা। এটা অস্থির হতে পারে.
তিনটি সহায়ক অস্থায়ী শাখা ব্যবহার করে উন্নয়ন ঘটে :
  1. বৈশিষ্ট্য শাখা — নতুন কার্যকারিতা বিকাশের জন্য।
  2. রিলিজ শাখা — প্রকল্পের একটি নতুন সংস্করণ প্রকাশের জন্য প্রস্তুতির জন্য।
  3. হটফিক্স শাখা - একটি বাস্তব সার্ভারে প্রকৃত ব্যবহারকারীদের দ্বারা পাওয়া একটি বাগ দ্রুত ঠিক করার জন্য।

বৈশিষ্ট্য শাখা

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

শাখা প্রকাশ করুন

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

হটফিক্স শাখা

হটফিক্স শাখাগুলি মাস্টার শাখায় একটি নতুন সংস্করণ প্রকাশ করার জন্যও বোঝানো হয়৷ একমাত্র পার্থক্য হল সেই রিলিজগুলি পরিকল্পিত নয়। এমন পরিস্থিতি রয়েছে যখন বাগগুলি প্রকাশিত সংস্করণে প্রবেশ করে এবং উত্পাদন পরিবেশে আবিষ্কৃত হয়। iOS নিন: একটি নতুন সংস্করণ প্রকাশিত হওয়ার সাথে সাথে আপনি মুক্তির পরে পাওয়া বাগগুলির সমাধান সহ একগুচ্ছ আপডেট পাবেন। তদনুসারে, আমাদের দ্রুত একটি বাগ সংশোধন করতে হবে এবং একটি নতুন সংস্করণ প্রকাশ করতে হবে। আমাদের ছবিতে, এটি সংস্করণ 1.0.1 এর সাথে মিলে যায়। ধারণাটি হল যে নতুন কার্যকারিতা নিয়ে কাজ বন্ধ করতে হবে না যখন এটি একটি বাস্তব সার্ভারে একটি বাগ ঠিক করার প্রয়োজন হয় (বা যেমন আমরা বলি, "প্রোড" বা "উৎপাদনে")। হটফিক্স শাখাটি মাস্টার শাখা থেকে তৈরি করা উচিত, যেহেতু এটি বর্তমানে যা উত্পাদন চলছে তা উপস্থাপন করে। বাগ ফিক্স প্রস্তুত হওয়ার সাথে সাথে, এটি মাস্টারে একত্রিত করা হয় এবং একটি নতুন ট্যাগ তৈরি করা হয়। একটি রিলিজ শাখা প্রিপ করার মতো, একটি হটফিক্স শাখারও তার ফিক্সকে আবার ডেভেলপমেন্ট শাখায় মার্জ করা উচিত।

কাঁটাচামচ কর্মপ্রবাহ

বিভ্রান্তি ছাড়াই টিমওয়ার্ক: গিট - 4-এ শাখার কৌশলগুলি বোঝাফর্কিং ওয়ার্কফ্লোতে, উন্নয়ন দুটি সংগ্রহস্থল জড়িত:
  1. মূল সংগ্রহস্থল, যেখানে সমস্ত পরিবর্তন একত্রিত করা হবে।
  2. একটি কাঁটাচামচ সংগ্রহস্থল। এটি মূল সংগ্রহস্থলের একটি অনুলিপি, অন্য একজন বিকাশকারীর মালিকানাধীন যিনি আসলটিতে পরিবর্তন করতে চান৷
এখন পর্যন্ত একটু অদ্ভুত শোনাচ্ছে, তাই না? যে কেউ ইতিমধ্যেই ওপেন সোর্স ডেভেলপমেন্টের সম্মুখীন হয়েছে তারা ইতিমধ্যেই এই পদ্ধতির সাথে পরিচিত। এই কৌশলটি নিম্নলিখিত সুবিধা দেয়: মূল শাখায় যৌথ বিকাশের অনুমতি না দিয়েই একটি কাঁটা সংগ্রহস্থলে বিকাশ ঘটতে পারে। স্বাভাবিকভাবেই, মূল ভান্ডারের মালিকের প্রস্তাবিত পরিবর্তনগুলি প্রত্যাখ্যান করার অধিকার রয়েছে। অথবা তাদের গ্রহণ এবং একত্রীকরণ. এটি মূল সংগ্রহস্থলের মালিক এবং বিকাশকারী উভয়ের জন্য সুবিধাজনক যারা পণ্যটি তৈরি করতে সহায়তা করতে চান৷ উদাহরণস্বরূপ, আপনি লিনাক্স কার্নেলে পরিবর্তনের পরামর্শ দিতে পারেন । যদি লিনুস সিদ্ধান্ত নেয় যে তারা অর্থপূর্ণ, পরিবর্তনগুলি যোগ করা হবে (!!!)।

ফর্কিং ওয়ার্কফ্লো একটি উদাহরণ

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

কোন কৌশল বেছে নিতে হবে

গিট একটি নমনীয় এবং শক্তিশালী টুল যা আপনাকে বিভিন্ন ধরণের প্রক্রিয়া এবং কৌশল ব্যবহার করে কাজ করতে দেয়। কিন্তু আপনার যত বেশি পছন্দ আছে, কোন কৌশলটি বেছে নেবেন তা নির্ধারণ করা তত বেশি কঠিন। এটা স্পষ্ট যে প্রত্যেকের জন্য কোন একক উত্তর নেই। সবকিছু পরিস্থিতির উপর নির্ভর করে। এটি বলেছে, বেশ কয়েকটি নির্দেশিকা রয়েছে যা এটিতে সহায়তা করতে পারে:
  1. প্রথমে সবচেয়ে সহজ কৌশলটি বেছে নেওয়া ভাল। প্রয়োজন হলেই আরও জটিল কৌশলে যান।
  2. বিকাশকারীদের জন্য যতটা সম্ভব কম শাখার ধরন রয়েছে এমন কৌশলগুলি বিবেচনা করুন।
  3. বিভিন্ন কৌশলগুলির সুবিধা এবং অসুবিধাগুলি দেখুন এবং তারপরে আপনার প্রকল্পের জন্য আপনার প্রয়োজনীয় একটি চয়ন করুন।
গিট-এ ব্রাঞ্চিং কৌশল সম্পর্কে আমি এটাই বলতে চেয়েছিলাম। আপনার মনোযোগের জন্য ধন্যবাদ :) GitHub-এ আমাকে অনুসরণ করুন , যেখানে আমি প্রায়ই আমার কাজে ব্যবহার করি এমন বিভিন্ন প্রযুক্তি এবং সরঞ্জাম জড়িত আমার সৃষ্টি পোস্ট করি।
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION