জন পুরীর সঠিক ধারণা আছে। git flowএই শাখাগুলির প্রকৃত পরিচালনাও সহজ করে তোলে এবং শাখা পরিচালনাও সরানোর পক্ষে যুক্তি git।
এর মৌলিক ভগ্নস্বাস্থ্য শিঠ্ট দিয়ে শুরু করা যাক git, যেহেতু আপনার কাছ থেকে আসছে svn-to- gitদৃষ্টিকোণ। gitনিম্নলিখিত বিবেচনা করুন :
master--...............-.....-..............-
\ / / /
---develop---------............../
\ /
--feature---
সর্বোপরি, আপনি শাখায় বিভক্ত masterকরার develop(দ্বারা প্রকাশ \), এবং শাখা developএকটি থেকে featureশাখা। আমরা সেই শাখাগুলিকে ব্যাক আপ (দ্বারা চিহ্নিত /), -একটি শাখার সাথে কমিট ( ) দিয়ে মার্জ করি । (যদি কোনও প্রতিশ্রুতি না থাকে তবে মার্জটি ডান দিকে যাওয়ার উপায় রয়েছে, সেখানে .পরবর্তীটি -পরবর্তী প্রতিশ্রুতিবদ্ধ তা দেখানোর জন্য সূচক রয়েছে )।
যথেষ্ট সহজ আমাদের মূল প্রকাশে যদি হটফিক্স থাকে?
master--...............-.....-................-...........-.........-
\ / / / \ /| /
\ / / / -hotfix-- V /
---develop---------............../..............-...----
\ / \ V /
--feature--- --feature2...----
উপরে, developশাখা থেকে master। যে বাগটি আবিষ্কার হয়েছিল masterতা শাখা থেকে ঠিক করে masterএবং এটিতে আবার মার্জ করে ঠিক করা হয়েছিল master। আমরা তখন মার্জ masterমধ্যে develop, এবং তারপর developমধ্যেfeature2 , যা থেকে নতুন কোড ঘূর্ণিত hotfixএই শাখা মধ্যে।
আপনি যখন feature2আবার মার্জ হয়ে যান develop, এর ইতিহাসটি এর developসাথে অন্তর্ভুক্ত থাকে hotfix। তেমনিভাবে, নতুন developকোডটির feature2সাথে মিশে গেছে master, সুতরাং কোনও সংযোজন ছাড়াই developফিরে মার্জ হয়ে যাওয়া masterহবে, কারণ এটি masterসেই সময়ে করা সেই প্রতিশ্রুতির উপর ভিত্তি করে — যেন আপনি masterসেই বিন্দু থেকে শাখা করেছিলেন ।
সুতরাং এটি করার অন্য একটি উপায়।
master--..........-........-
\ /\ /
---1.0-- --1.1--
তোমার 1.0 রিলিজ tagged- পেতে 1.0.1, 1.0.2, 1.0.3, এবং তাই ঘোষণা।
এখন এখানে একটি কৌশল: আপনি 1.0 এ একটি বাগ খুঁজে পেয়েছেন এবং এটি 1.1, 1.2 এবং 1.3 কে প্রভাবিত করে। আপনি কি করেন?
আপনি আপনার সর্বশেষতম বা প্রাথমিক রক্ষণাবেক্ষণ প্রকাশ বন্ধ করুন এবং এটি ঠিক করুন। তারপর আপনি আপনার নতুন একত্রীকরণ hotfixমধ্যে শাখা 1.3মধ্যে -আর 1.2, 1.1এবং 1.0। রক্ষণাবেক্ষণ সংস্করণের প্রতিটি শাখা থেকে শাখা করবেন না; মার্জ না 1.0মধ্যে masterবা একত্রীকরণ masterফিরে 1.0। একটি hotfixশাখা নিন এবং এটি আপনার সমস্ত সংস্করণ শাখায় মার্জ করুন। যদি কোন্দল হয় তবে তা আপনাকে বলবে; পরিবর্তনগুলি সঠিক কিনা তা নিশ্চিত করতে আপনার কোডটি পর্যালোচনা করুন ( git diffএটি আপনার বন্ধু)।
এখন সুনির্দিষ্ট পরিবর্তনটি সর্বত্র প্রয়োগ করা হয়েছে। বংশ ব্রাঞ্চ করা হয়েছে, তবে ঠিক আছে। এটা হাফিজার্ড নয়। 1.31.3.17 হিসাবে শিরোনামটি ট্যাগ করুন , এটিকে ব্রাঞ্চযুক্ত প্রতিটি বৈশিষ্ট্যে-অগ্রগতিতে মার্জ 1.3করুন এবং এগিয়ে যান।
git flowএক্সটেনশন আপনার জন্য এই রক্ষণাবেক্ষণ, বৈশিষ্ট্য, এবং hotfix শাখা পরিচালনা করতে সাহায্য করে। ওয়ার্কফ্লোটি একবার ডাউন হয়ে গেলে, এটি তুচ্ছ এবং উত্স কোড পরিচালনার বাইরে বিপুল পরিমাণ সমস্যায় পড়ে takes
আমি প্রোগ্রামিং দলগুলিতে এটি দেখেছি, তবে আমি নিজে একজন প্রোগ্রামার হিসাবে এত গভীরভাবে কাজ করি নি, তাই আমি এখনও দিনের বেলা ওয়ার্কফ্লো নিজেই মাথা ঘুরে দেখছি।
gitপ্রতিটি সফল বিল্ডের পরে স্বয়ংক্রিয়ভাবে একটি ট্যাগ যুক্ত করতে পারবেন ? এটির অতিরিক্ত সুবিধা হ'ল এটি এটি পরিষ্কারgitকরে দেয় যে কোন অঙ্গীকারগুলি তৈরির বিষয়টি বা পরীক্ষায় ব্যর্থতা রয়েছে, যেহেতু তারা ট্যাগবিহীন থাকবে।