গিট শাখা আয়ত্ত করা: সৃষ্টি এবং ট্র্যাকিং
কার্যকর সংস্করণ নিয়ন্ত্রণ এবং সহযোগিতামূলক বিকাশের জন্য গিট শাখাগুলির সাথে কাজ করা অপরিহার্য। এই নির্দেশিকা আপনাকে দেখাবে কিভাবে অন্য শাখা থেকে একটি স্থানীয় শাখা তৈরি করা যায় এবং এটিকে একটি দূরবর্তী সংগ্রহস্থলে ঠেলে দেওয়া যায়।
উপরন্তু, আপনি শিখবেন কিভাবে শাখাটিকে ট্র্যাকযোগ্য করা যায়, নিশ্চিত করে যে গিট পুল এবং গিট পুশ কমান্ডগুলি নির্বিঘ্নে কাজ করে। আপনার গিট ওয়ার্কফ্লো স্ট্রীমলাইন করতে এবং দক্ষ প্রকল্প পরিচালনা বজায় রাখতে এই পদক্ষেপগুলি অনুসরণ করুন।
আদেশ | বর্ণনা |
---|---|
git checkout -b <branch-name> | বর্তমান শাখা থেকে একটি নতুন শাখা তৈরি করে এবং স্যুইচ করে। |
git push -u origin <branch-name> | নতুন শাখাটিকে দূরবর্তী সংগ্রহস্থলে ঠেলে দেয় এবং আপস্ট্রিম (ট্র্যাকিং) শাখা সেট করে। |
repo.create_head(<branch-name>) | GitPython লাইব্রেরি ব্যবহার করে Git সংগ্রহস্থলে একটি নতুন শাখা তৈরি করে। |
branch.checkout() | GitPython লাইব্রেরি ব্যবহার করে গিট রিপোজিটরিতে নির্দিষ্ট শাখায় স্যুইচ করে। |
origin.push(refspec='{}:{}') | GitPython লাইব্রেরি ব্যবহার করে নির্দিষ্ট শাখাটিকে দূরবর্তী সংগ্রহস্থলে ঠেলে দেয়। |
set_tracking_branch('origin/<branch-name>') | GitPython লাইব্রেরি ব্যবহার করে নতুন তৈরি করা শাখার জন্য আপস্ট্রিম (ট্র্যাকিং) শাখা সেট করে। |
শাখা তৈরি এবং ট্র্যাকিং প্রক্রিয়া বোঝা
প্রদত্ত স্ক্রিপ্টগুলি প্রদর্শন করে যে কীভাবে একটি নতুন গিট শাখা তৈরি করতে হয় এবং এটিকে একটি দূরবর্তী সংগ্রহস্থলে ঠেলে দেয়, এটি নিশ্চিত করে যে এটি ট্র্যাকযোগ্য। প্রথম স্ক্রিপ্ট গিট কমান্ড লাইন ব্যবহার করে। নির্বাহ করে , একটি নতুন শাখা তৈরি করা হয় এবং একই সাথে সুইচ করা হয়। বিকল্পভাবে, দ্বারা অনুসরণ করা দুটি ধাপে একই ফলাফল অর্জন করে। নতুন শাখাটিকে রিমোট রিপোজিটরিতে ধাক্কা দিতে এবং দূরবর্তী শাখাটিকে ট্র্যাক করার জন্য এটি সেট করুন, কমান্ড git push -u origin new-branch ব্যবহৃত হয়.
ব্যাশে লেখা দ্বিতীয় স্ক্রিপ্ট এই প্রক্রিয়াটিকে স্বয়ংক্রিয় করে। এটি একটি শাখার নাম প্রদান করা হয়েছে কিনা তা পরীক্ষা করে শুরু হয় এবং তারপর ব্যবহার করে নতুন শাখা তৈরি করতে এবং স্যুইচ করতে, যেখানে শাখার নাম। আদেশ নতুন শাখাটিকে দূরবর্তী সংগ্রহস্থলে ঠেলে দেয় এবং ট্র্যাকিং সেট আপ করে। তৃতীয় স্ক্রিপ্টটি গিটপাইথন লাইব্রেরির সাথে পাইথন ব্যবহার করে। এটি সংগ্রহস্থল শুরু করে, এর সাথে একটি নতুন শাখা তৈরি করে repo.create_head(sys.argv[1]), এটি ব্যবহার করে সুইচ করে , এবং এর সাথে আপস্ট্রিম শাখা সেট করার সময় এটিকে দূরবর্তী সংগ্রহস্থলে ঠেলে দেয় .
একটি নতুন গিট শাখা তৈরি এবং পুশ করা
গিট কমান্ড লাইন ব্যবহার করে
# Step 1: Create a new branch from the current branch
git checkout -b new-branch
# or
git branch new-branch
git checkout new-branch
# Step 2: Push the new branch to the remote repository and set it to track the remote branch
git push -u origin new-branch
# Now, the branch is created locally, pushed to the remote, and tracking is set
স্বয়ংক্রিয়ভাবে গিট শাখা তৈরি এবং পুশিং
ব্যাশ স্ক্রিপ্ট ব্যবহার করা
#!/bin/bash
# Check if branch name is provided
if [ -z "$1" ]
then
echo "Usage: $0 <branch-name>"
exit 1
fi
# Create a new branch from the current branch
git checkout -b $1
# Push the new branch to the remote repository and set it to track the remote branch
git push -u origin $1
echo "Branch '$1' created and pushed to remote repository."
প্রোগ্রাম্যাটিক গিট শাখা ব্যবস্থাপনা
GitPython লাইব্রেরির সাথে পাইথন ব্যবহার করা
import git
import sys
# Ensure branch name is provided
if len(sys.argv) != 2:
print("Usage: python create_push_branch.py <branch-name>")
sys.exit(1)
# Repository path
repo_path = '.' # Current directory
# Initialize repository
repo = git.Repo(repo_path)
# Create new branch
new_branch = repo.create_head(sys.argv[1])
# Checkout to the new branch
new_branch.checkout()
# Push the new branch and set upstream
origin = repo.remote(name='origin')
origin.push(refspec='{}:{}'.format(new_branch, new_branch)).set_tracking_branch('origin/{}'.format(new_branch))
print("Branch '{}' created and pushed to remote repository.".format(sys.argv[1]))
গিট শাখা ব্যবস্থাপনায় আরও গভীরে ডুব দেওয়া
Git শাখা পরিচালনার আরেকটি গুরুত্বপূর্ণ দিক হল শাখাগুলিকে একত্রিত করার সময় কীভাবে দ্বন্দ্বগুলি পরিচালনা করতে হয় তা বোঝা। একটি দলে কাজ করার সময়, একাধিক শাখা একই সাথে তৈরি এবং পরিবর্তিত হতে পারে। এটি দ্বন্দ্বের দিকে নিয়ে যেতে পারে যা একটি শাখাকে একত্রিত করার আগে সমাধান করা প্রয়োজন৷ দ্য এক শাখা থেকে অন্য শাখায় পরিবর্তনগুলিকে একীভূত করতে কমান্ড ব্যবহার করা হয়, কিন্তু একীভূত হওয়া শাখাগুলিতে কোডের একই লাইন ভিন্নভাবে পরিবর্তন করা হলে বিরোধ দেখা দিতে পারে।
দ্বন্দ্ব সমাধানের জন্য, গিট মার্জকে বিরতি দেবে এবং আপনাকে ম্যানুয়ালি দ্বন্দ্বগুলি সমাধান করার অনুমতি দেবে। তাদের সমাধান করার পর, কমান্ডটি সমাধান করা ফাইলগুলিকে স্টেজ করার জন্য ব্যবহার করা হয়, তারপরে একত্রীকরণ সম্পূর্ণ করতে। উপরন্তু, যেমন সরঞ্জাম অন্য বেস টিপের উপরে কমিট পুনরায় প্রয়োগ করার জন্য নিযুক্ত করা যেতে পারে, যা ইতিহাসকে সরল করতে পারে তবে দ্বন্দ্বের কারণ হতে পারে যার সমাধান করা প্রয়োজন।
গিট ব্রাঞ্চিং এবং ট্র্যাকিং এর সাধারণ প্রশ্ন
- আমি কিভাবে একটি স্থানীয় শাখা মুছে ফেলব?
- আপনি কমান্ড ব্যবহার করে একটি স্থানীয় শাখা মুছে ফেলতে পারেন .
- আমি কিভাবে একটি দূরবর্তী শাখা মুছে ফেলব?
- একটি দূরবর্তী শাখা মুছে ফেলতে, কমান্ড ব্যবহার করুন .
- আমি কিভাবে আমার সংগ্রহস্থলে সব শাখা দেখতে পারি?
- ব্যবহার করুন সমস্ত স্থানীয় শাখার তালিকা করতে এবং দূরবর্তী শাখার জন্য।
- গিটে একটি ট্র্যাকিং শাখা কি?
- একটি ট্র্যাকিং শাখা হল একটি স্থানীয় শাখা যার একটি দূরবর্তী শাখার সাথে সরাসরি সম্পর্ক রয়েছে। আপনি এর সাথে একটি ট্র্যাকিং শাখা সেট আপ করতে পারেন .
- আমি কীভাবে শাখাগুলির মধ্যে স্যুইচ করব?
- কমান্ড ব্যবহার করুন নির্দিষ্ট শাখায় স্যুইচ করতে।
- পার্থক্য কি এবং ?
- অন্য শাখা থেকে পরিবর্তনগুলিকে একীভূত করে, একটি মার্জ কমিট তৈরি করে। অন্য বেস টিপের উপরে কমিট পুনরায় প্রয়োগ করে, যার ফলে একটি রৈখিক ইতিহাস হয়।
- আমি কিভাবে Git এ মার্জ দ্বন্দ্ব সমাধান করব?
- যখন একটি মার্জ বিরোধ দেখা দেয়, তখন সমস্যাগুলি সমাধান করতে বিরোধপূর্ণ ফাইলগুলি ম্যানুয়ালি সম্পাদনা করুন, তারপর ব্যবহার করুন৷ সমাধান করা ফাইল স্টেজ করতে এবং একত্রীকরণ চূড়ান্ত করতে।
- আমি কিভাবে একটি দূরবর্তী সংগ্রহস্থল সেট আপ করব?
- আপনি কমান্ড ব্যবহার করে একটি দূরবর্তী সংগ্রহস্থল সেট আপ করতে পারেন .
একটি সহযোগিতামূলক পরিবেশে কাজ করা যেকোনো বিকাশকারীর জন্য গিট শাখা তৈরি এবং ট্র্যাকিংয়ে দক্ষতা অর্জন করা অত্যন্ত গুরুত্বপূর্ণ। মত কমান্ড ব্যবহার করে এবং , আপনি দক্ষতার সাথে আপনার শাখাগুলি পরিচালনা করতে পারেন, নিশ্চিত করে যে সেগুলি সঠিকভাবে ট্র্যাক করা হয়েছে এবং দূরবর্তী সংগ্রহস্থলের সাথে একত্রিত হয়েছে। এই অনুশীলনটি শুধুমাত্র আপনার কর্মপ্রবাহকে সহজ করে না বরং বিকাশের সময় দ্বন্দ্ব এবং ত্রুটিগুলিও কমিয়ে দেয়। আপনার সংস্করণ নিয়ন্ত্রণ দক্ষতা আরও উন্নত করতে মার্জ দ্বন্দ্ব রেজোলিউশন এবং রিবেসের মতো উন্নত বৈশিষ্ট্যগুলি অন্বেষণ করতে মনে রাখবেন।