ব্রাঞ্চিং প্রায় সকল আধুনিক ভার্সন কন্ট্রোল সিস্টেমে একটি ফিচার। ব্রাঞ্চ ডেভেলপারদের তাদের কোডের মেইন ভার্সন থেকে দূরে যেতে এবং তাদের কোডে পরিবর্তন আনতে দেয় মেইন ভার্সন আপডেট ছাড়া।
অন্য ভার্সন কন্ট্রোল সিস্টেমে, ব্রাঞ্চিং একটি কঠিন প্রসেস হতে পারে। কিছু ভার্সন কন্ট্রোল সিস্টেম আপনাকে আপনার কোডের একটি নতুন কপি তৈরি করতে বলে, যা বড় প্রজেক্টের জন্য শ্রমসাধ্য হতে পারে। Git, অন্যদিকে, একটি সিম্পল ব্রাঞ্চিং ফিচার আছে যা আপনাকে সহজে বিভিন্ন ব্রাঞ্চের মধ্যে নেভিগেট করতে দেয়।
এই টিউটোরিয়াল উদাহরণসহ Git-এ ব্রাঞ্চিং-এর বেসিক এবং কীভাবে আপনি git branch কমান্ড ব্যবহার করতে পারেন তা আলোচনা করবে। এই টিউটোরিয়াল পড়ার শেষে, আপনি Git-এ ব্রাঞ্চিং-এ এক্সপার্ট হবেন।
Git Branches
ব্রাঞ্চ Git-এ কাজ করার একটি অপরিহার্য অংশ।
প্রফেশনাল প্রজেক্টে, ব্রাঞ্চগুলো প্রায়শই প্রতিটি ফিচার বা ফিক্সের জন্য ব্যবহৃত হয় যেটি করা হচ্ছে। এর কারণ হলো ব্রাঞ্চিং একটি ডেভেলপারকে একটি রিপোজিটরিতে কাজ করতে দেয় মেইন কোডবেস প্রভাবিত ছাড়া, যাতে ডেভেলপার একটি ফিচার বা বাগ ফিক্স করতে পারে অন্যদের সাথে মিলে এটি মেইন কপি অফ দ্য প্রজেক্ট'স কোড-এ পুশ করার আগে।
সফ্টওয়্যার ডেভেলপমেন্টের এই অ্যাপ্রোচ ত্রুটিযুক্ত কোড মেইন ভার্সন অফ এ কোডবেস-এ মার্জ হওয়ার চান্স কমিয়ে দেয়।
Git-এ, একটি ব্রাঞ্চ হলো একটি রিপোজিটরির ভিতরে একটি নতুন লাইন। এই নতুন লাইনটি কোডবেসের কোডের নিজস্ব ভার্সন অন্তর্ভুক্ত করবে এবং মেইন ব্রাঞ্চ থেকে স্বতন্ত্রভাবে বিকশিত হবে। অধিকাংশ কোডবেসে, এই ব্রাঞ্চকে "master branch" বলা হয়।
কারণ ব্রাঞ্চগুলো মাস্টার ব্রাঞ্চ থেকে স্বতন্ত্র, এগুলো একটি কোডবেসে বিভিন্ন ফিচারে প্যারালেলভাবে কাজ করতে ব্যবহার করা যেতে পারে। তারপর, যখন একটি পরিবর্তন মেইন কোডবেসের অংশ হতে প্রস্তুত, পরিবর্তনটি মাস্টার ব্রাঞ্চে বা কোডের মেইন ভার্সনে মার্জ করা যেতে পারে।
৮১% পার্টিসিপেন্ট заяви করেছেন যে বুটক্যাম্পে অংশগ্রহণের পর তাদের টেক জব প্রস্পেক্টস নিয়ে তারা আরও আত্মবিশ্বাসী মনে করছেন। আজই একটি বুটক্যাম্পে ম্যাচ করুন।
গড় বুটক্যাম্প গ্র্যাজুট ক্যারিয়ার ট্রানজিশনে ছয় মাসের কম সময় ব্যয় করেছেন, বুটক্যাম্প শুরু থেকে প্রথম জব পাওয়ার পর্যায়ে।
Git Branch Commands
ইউজার-ক্রিয়েটেড ব্রাঞ্চগুলো মাস্টার ব্রাঞ্চ থেকে স্বতন্ত্র। এই ব্রাঞ্চগুলোর নিজস্ব কমিট ইতিহাস থাকে, এবং যখন আপনি পরিবর্তন পুশ করেন ব্রাঞ্চে, সেই পরিবর্তনগুলো শুধু সেই ব্রাঞ্চে দেখাবে যেটিতে সেগুলো পুশ করা হয়েছে।
ব্রাঞ্চকে একই কোডবেসের মাল্টিপল ভার্সন তৈরি করার একটি উপায় হিসেবে চিন্তা করুন। আপনার একটি ব্রাঞ্চ থাকতে পারে যেটি একটি নতুন ফিচারের কোড অন্তর্ভুক্ত করে যেটি আপনি কাজ করছেন, এবং অন্য একটি ব্রাঞ্চ যেটি একটি রিপোজিটরির আপডেটেড ভার্সন স্টোর করে যা একটি ওপেন ইস্যু সমাধান করে।
git branch কমান্ড Git-এ ব্রাঞ্চ নিয়ে কাজ করার জন্য ব্যবহৃত হয়। কমান্ডটি আপনাকে ব্রাঞ্চ তৈরি, রিনেম, এবং ডিলিট করতে দেয়। আপনি git branch ব্যবহার করে ব্রাঞ্চের একটি লিস্টও রিট্রিভ করতে পারেন।
অতিরিক্তভাবে, git branch সাধারণত git checkout এবং git merge কমান্ডের সাথে ব্যবহার করা হয়, যেগুলো ব্যবহার করা হয় একটি কোডবেসের বিভিন্ন ভার্সনের মধ্যে সুইচ করতে এবং একটি কোডবেসের বিভিন্ন ভার্সন মার্জ করতে, যথাক্রমে। আমরা এই টপিকগুলো আলোচনা করব তাদের নিজস্ব টিউটোরিয়ালে।
এখন আমরা Git-এ ব্রাঞ্চিং-এর বেসিক জানি, আমরা এক্সপ্লোর করতে পারি কীভাবে git branch কমান্ড ব্যবহার করতে হয় এর সাপোর্টেড ফ্ল্যাগস এবং প্যারামিটারসহ।
ব্রাঞ্চের একটি লিস্ট রিট্রিভ করুন
একটি Git রিপোজিটরিতে ব্রাঞ্চের একটি লিস্ট রিট্রিভ করতে, আপনি git branch কমান্ড ব্যবহার করতে পারেন। git branch কমান্ডের সিনট্যাক্স:
git branch
এই কমান্ড থেকে একটি উদাহরণ আউটপুট:
* master * v0.9 * v0.8
আপনি দেখতে পাচ্ছেন, git branch কমান্ড আমাদের Git রিপোজিটরির ব্রাঞ্চের একটি লিস্ট রিটার্ন করে। এই কমান্ড লিখার আরেকটি উপায় হলো git branch –list ব্যবহার করা, যা একটি Git রিপোজিটরির ব্রাঞ্চের একটি লিস্ট রিটার্ন করে।
একটি ব্রাঞ্চ তৈরি করুন
ধরা যাক আমরা আমাদের কোডবেসে "v0.9.1" নামে একটি ব্রাঞ্চ তৈরি করতে চাই। আমরা এটি এই কোড দিয়ে করতে পারি:
git branch v0.9.1
এই কমান্ড v0.9.1 নামে একটি নতুন ব্রাঞ্চ তৈরি করে। যখন এই কমান্ড রান করা হয়, আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট রিপোজিটরির HEAD-এর সাথে আটাক থাকবে। তাই, আপনি যদি আপনার নতুন ব্রাঞ্চ দেখতে চান, আপনাকে git checkout কমান্ড ব্যবহার করতে হবে।
যখন একটি নতুন ব্রাঞ্চ তৈরি হয়, রিপোজিটরিটি অন্য কোনোভাবে পরিবর্তন হয় না এই তথ্য বাদে যে একটি নতুন ব্রাঞ্চ বিদ্যমান। রিপোজিটরির ইতিহাস একই থাকবে। এর কারণ হলো যখন আপনি একটি ব্রাঞ্চ তৈরি করেন, Git শুধু নতুন ব্রাঞ্চটির একটি পয়েন্টার তৈরি করে।
আপনি যদি আপনার ব্রাঞ্চে কোড কমিট করতে চান, আপনাকে git checkout, git add এবং git commit কমান্ড ব্যবহার করতে হবে।
একটি ব্রাঞ্চ ডিলিট করুন
একটি Git রিপোজিটরিতে একটি ব্রাঞ্চ ডিলিট করতে, আপনি -d ফ্ল্যাগ ব্যবহার করতে পারেন।
ধরা যাক আমরা সিদ্ধান্ত নিয়েছি যে আমরা v0.9.1 ব্রাঞ্চটি আমাদের কোড থেকে ডিলিট করব। এখানে আমরা যে কমান্ড ব্যবহার করব ব্রাঞ্চটি ডিলিট করতে:
git branch -d v0.9.1
এই কমান্ড আমাদের ব্রাঞ্চ ডিলিট করে। যাইহোক, -d ফ্ল্যাগ একটি সেফ ডিলিট অপারেশন পারফর্ম করে, যার মানে যদি আনমার্জড চেঞ্জ থাকে (ব্রাঞ্চে পরিবর্তন যেগুলো অন্য ব্রাঞ্চে মার্জ করা হয়নি), তবে ব্রাঞ্চটি ডিলিট হবে না। এটি নিশ্চিত করে যে আপনি অকস্মাত কোনো ব্রাঞ্চ অ্যাক্সেস হারাবেন না যেটিতে কোড আছে যেটি আপনি মার্জ করতে চান।
আপনি যদি একটি ব্রাঞ্চ ফোর্স করে ডিলিট করতে চান, এমনকি যদি সেটি পেন্ডিং আনমার্জড চেঞ্জ داشته থাকে, আপনি -D ফ্ল্যাগ ব্যবহার করতে পারেন। এটি একটি ব্রাঞ্চ পার্মানেন্টলি ডিলিট করবে। -D ফ্ল্যাগের সিনট্যাক্স:
git branch -D v0.9.1
এই কমান্ড রান করার পর, আমাদের ব্রাঞ্চ ডিলিট হয়ে গেছে। -D ফ্ল্যাগ শুধু সেই কেসগুলোতে ব্যবহার করা উচিত যেখানে আপনি আপসোলিউটলি শিউর যে আপনি একটি ব্রাঞ্চ ডিলিট করতে চান। এর কারণ হলো -D ফ্ল্যাগ এক্সিকিউট হওয়ার সময় কোনো ওয়ার্নিং দেখায় না।
একবার আপনি git branch -d/-D কমান্ড এক্সিকিউট করলে, ব্রাঞ্চের লোকাল কপি ডিলিট হয়ে যাবে। যাইহোক, ব্রাঞ্চটি এখনও মেইন কপি অফ দ্য রিপোজিটরিতে থাকতে পারে, যদি আপনার রিপোজিটরি রিমোটে স্টোর করা থাকে।
আপনি যদি রিমোট কপি অফ দ্য ব্রাঞ্চ ডিলিট করতে চান, আপনাকে আরেকটি কমান্ড রান করতে হবে। ধরা যাক আমরা আমাদের রিমোট রিপোজিটরিকে বলতে চাই যে ব্রাঞ্চ v0.9.1 ডিলিট করা উচিত। আমরা এটি এই কমান্ড দিয়ে করতে পারি:
git push origin :v0.9.1
উপরের কমান্ড আমাদের রিমোট রিপোজিটরিকে ইনস্ট্রাক্ট করবে v0.9.1 ব্রাঞ্চটি ডিলিট করার জন্য।
একটি ব্রাঞ্চ রিনেম করুন
আপনি একটি Git ব্রাঞ্চ রিনেম করতে পারেন -m ফ্ল্যাগ ব্যবহার করে।
-m ফ্ল্যাগ সেই ব্রাঞ্চটি রিনেম করে যেটি আপনি বর্তমানে দেখছেন। ধরা যাক আমরা ব্রাঞ্চ v0.9.2 (যেটি আমরা বর্তমানে দেখছেন) কে v1-এ রিনেম করতে চাই। আমরা এটি এই কোড দিয়ে করতে পারি:
git branch -m v1
এই কমান্ড আমরা যে ব্রাঞ্চটি দেখছি সেটিকে v1-এ রিনেম করে।
উপসংহার
git branch কমান্ড ব্রাঞ্চ তৈরি, রিনেম, এবং ডিলিট করতে ব্যবহৃত হয়। কমান্ডটি একটি git রিপোজিটরির সাথে যুক্ত ব্রাঞ্চের একটি লিস্ট রিট্রিভ করতেও ব্যবহার করা যেতে পারে।
যাইহোক, আপনি যদি একটি ব্রাঞ্চে কোড কমিট করতে চান, আপনাকে git checkout, git add, এবং git commit কমান্ড ব্যবহার করতে হবে, যেগুলো একটি কোডবেসে পরিবর্তন সংরক্ষণ করতে ব্যবহৃত হয়।
এই টিউটোরিয়াল উদাহরণসহ আলোচনা করেছে Git-এ ব্রাঞ্চিং-এর বেসিক এবং git branch কমান্ড কীভাবে ব্যবহার করতে হয়। এখন আপনার কাছে वो নলেজ রয়েছে যা আপনাকে Git-এ প্রফেশনাল ডেভেলপারের মতো কোড ব্রাঞ্চিং শুরু করতে দেবে!