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

=> প্রথমেই আমাদেরকে এমন একটি রিমোট রিপোজিটরি তৈরি করতে হবে যা কেন্দ্রীয় রিপোজিটরি হিসেবে ব্যবহার করা হবে। আপনি যদি বিনামূল্যে github(একটি গিট রিপোজিটরি সার্ভার) ব্যবহার করেন তাহলে যে কেউ আপনার রিপোজিটরিতে read access পাবে। কিন্তু bitbucket ব্যবহার করলে আপনি যদি রিপোজিটরি public না করে দেন তাহলে কেউ দেখতে পাবে না। চাইলে আপনি private রিপোজিটরিতেও আপনার পছন্দনীয় ব্যক্তিকে read, write অথবা admin access দিতে পারবেন। তাই আপনি যে সকল ডেভেলপারকে আপনার রিপোজিটরিতে সংযুক্ত করবেন তাদেরকে read access দিন।

=> ফোর্ক(fork): admin ব্যতিত যে সকল ডেভেলপার একই রিপোজিটরিতে কাজ করবেন তাদেরকে কেন্দ্রীয় বা মূল রিপোজিটরিতে Fork করতে হবে। ফোর্ক মানে হচ্ছে ডেভেলপারের সার্ভার একাউন্টে(account) মূল রিপোজিটরির মত একটি স্বতন্ত্র রিপোজিটরি তৈরি করা। ফোর্ক করার পর ডেভেলপার যে রিপোজিটরি তৈরি করবেন তা একান্তই তার নিজস্ব। এতে মূল রিপোজিটরির সাথে দৃশ্যত কোন সম্পর্ক থাকবে না। পরবর্তীতে আমরা চাইলে মূল রিপোজিটরির সাথে সংযোগ দিতে পারবো। একটি রিপোজিটরি ফোর্ক করা খুবই সহজ-

– কেন্দ্রীয় রিপোজিটরিতে প্রবেশ করুন
– Fork বাটনে(button) ক্লিক করুন
– প্রয়োজনীয় তথ্য পূরণ করে submit করুন ডেভেলপার এখন একটি নিজস্ব রিপোজিটরির মালিক। :)

=> এখন ডেভেলপার তার নিজস্ব রিপোজিটরিতে নতুন যে কোন feature নিয়ে কাজ করতে পারবেন। করতে পারবেন যে কোন ধরনের সম্পাদনা। কাজতো হলো কিন্তু এবার এত পরিশ্রমের কাজ কিভাবে মূল রিপোজিটরির সাথে সংযুক্ত করবো? খুবই সহজ–

=> Compare: কোন কোন রিমোট রিপোজিটরি সার্ভারে আপনার করা কাজকে compare করার সুযোগ রাখা হয়েছে। চাইলে আপনি দেখে নিতে পারেন মূল রিপোজিটরির সাথে আপনি কি সংযোজন-বিয়োজন করেছেন। compare করার জন্য ডেভেলপার তার রিপোজিটরি পাতায় compare বাটনে ক্লিক করুন। দেখে নিন আপনার কাজের বর্ণনা।

=> Pull Request: আপনার কাজগুলো মূল রিপোজিটরিতে অন্তর্ভুক্ত করার জন্য মূল রিপোজিটরিতে একটি Pull Request পাঠাতে হবে। এতে করে মূল রিপোজিটরিতে ডেভেলপারের কাজ সংযুক্ত করার জন্য একটি বার্তা প্রেরণ করা হবে। admin চাইলে ডেভেলপারের কাজ গ্রহন অথবা বাতিল করতে পারবেন। ডেভেলপার শুধু তার কাজ গ্রহন করা হয়েছে কি বাতিল করা হয়েছে এই মর্মে একটি বার্তা পাবেন। Pull Request পাঠানোর জন্য ডেভেলপার তার রিপোজিটরি পাতায় pull request বাটনে ক্লিক করুন।

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