গিট-এ নির্দিষ্ট পরিবর্তন মঞ্চায়ন

গিট-এ নির্দিষ্ট পরিবর্তন মঞ্চায়ন
Git

Git এ আংশিক কমিট দক্ষতার সাথে পরিচালনা করা

Git সংস্করণ নিয়ন্ত্রণের জন্য একটি শক্তিশালী টুল, কিন্তু এমন কিছু সময় আছে যখন আপনি একটি ফাইলে করা পরিবর্তনগুলির একটি উপসেট কমিট করতে চাইতে পারেন। এই প্রয়োজনটি প্রায়শই দেখা দেয় যখন আপনি একই সাথে একাধিক বৈশিষ্ট্য বা বাগ ফিক্সে কাজ করছেন এবং স্বচ্ছতা এবং আরও ভাল প্রকল্প পরিচালনার জন্য তাদের আলাদা কমিটে আলাদা করতে চান।

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

আদেশ বর্ণনা
git add -p আপনাকে ইন্টারেক্টিভভাবে কোন পরিবর্তনগুলি মঞ্চে নির্বাচন করার অনুমতি দেয়৷ এটি প্রতিটি পরিবর্তন উপস্থাপন করে এবং আপনাকে এটি মঞ্চস্থ করতে হবে কিনা তা চয়ন করতে দেয়।
git commit -m একটি বার্তা দিয়ে পর্যায়ভুক্ত পরিবর্তনগুলি কমিট করে৷ আপনি যে পরিবর্তনগুলি পর্যালোচনা করেছেন এবং নির্বাচন করেছেন তা নিশ্চিত করে।
git status ওয়ার্কিং ডাইরেক্টরি এবং স্টেজিং এরিয়ার বর্তমান অবস্থা দেখায়, আপনাকে কমিটের জন্য কি কি পরিবর্তন করা হয়েছে তা পর্যালোচনা করতে সাহায্য করে।
git reset HEAD <file> স্টেজিং এরিয়া থেকে স্টেজ না করা পরিবর্তন, ভুলবশত স্টেজ করা হলে সেগুলিকে অপসারণ করার অনুমতি দেয়।
Stage Hunk GUI সরঞ্জামগুলিতে, এই বিকল্পটি আপনাকে একবারে একটি ব্লক (হাঙ্ক) পরিবর্তন করতে দেয়।
Stage Selected Lines GUI সরঞ্জামগুলিতে, এই বিকল্পটি আপনাকে একটি ভিন্ন দৃশ্য থেকে পৃথক লাইনগুলি স্টেজ করার অনুমতি দেয়।

Git-এ আংশিক কমিট আয়ত্ত করা

উপরের উদাহরণে প্রদত্ত স্ক্রিপ্টগুলি প্রদর্শন করে যে কীভাবে নির্বাচনীভাবে গিট-এ পরিবর্তন করা যায় এবং কমিট করা যায়, একাধিক পরিবর্তন সহ জটিল প্রকল্পগুলি পরিচালনা করার সময় একটি মূল্যবান দক্ষতা। প্রথম স্ক্রিপ্ট কমান্ড লাইন ইন্টারফেস ব্যবহার করে, লিভারেজ git add -p আদেশ এই কমান্ডটি বিকাশকারীদের পর্যায়ক্রমে কোন পরিবর্তনগুলি নির্বাচন করতে দেয়। প্রতিটি পরিবর্তনকে স্বতন্ত্রভাবে উপস্থাপন করার মাধ্যমে, এটি আপনাকে বেছে নিতে দেয় যে এটিকে 'হ্যাঁ'র জন্য 'y', 'না'-এর জন্য 'n', অথবা পরিবর্তনটিকে আরও বিভক্ত করার জন্য 's'-এর মতো বিকল্পগুলির সাথে স্টেজ করা হবে কিনা। এটি বিশেষভাবে উপযোগী হয় যখন আপনার একটি ফাইলে একাধিক পরিবর্তন থাকে তবে শুধুমাত্র একটি উপসেট করতে চান, আপনার প্রতিশ্রুতিগুলি পরিষ্কার এবং ফোকাস করা নিশ্চিত করে।

পছন্দসই পরিবর্তনগুলি মঞ্চায়ন করার পরে, git commit -m একটি বার্তা সহ এই পরিবর্তনগুলি কমিট করার জন্য কমান্ড ব্যবহার করা হয়। এটি ব্যবহার করে পর্যায়ভুক্ত পরিবর্তনগুলি পর্যালোচনা করা গুরুত্বপূর্ণ git status, যা কাজের ডিরেক্টরি এবং স্টেজিং এলাকার বর্তমান অবস্থা দেখায়। যদি আপনি ভুলভাবে পর্যায় পরিবর্তন, git reset HEAD <file> কমান্ড তাদের অচল করতে পারে। যারা গ্রাফিকাল ইন্টারফেস পছন্দ করেন তাদের জন্য, GitKraken বা Sourcetree-এর মতো টুল একই ফলাফল অর্জনের জন্য 'স্টেজ হাঙ্ক' বা 'স্টেজ সিলেক্টেড লাইনস'-এর মতো বিকল্প সরবরাহ করে। উপরন্তু, GitLens এক্সটেনশনের সাথে VS কোড ব্যবহার করে নির্দিষ্ট লাইনের ইনলাইন স্টেজিং করার অনুমতি দেয়, প্রক্রিয়াটিকে আরও স্বজ্ঞাত এবং দৃশ্যমান করে তোলে।

গিট ব্যবহার করে পরিবর্তনের নির্বাচনী মঞ্চায়ন

কমান্ড লাইন ইন্টারফেস (CLI) স্ক্রিপ্ট

git add -p
# This command allows you to interactively select which changes to stage.

# You'll be presented with each change and can choose 'y' to stage this change,
# 'n' to skip, 's' to split the change into smaller parts, and more options.

# Example:
# $ git add -p
# diff --git a/file.txt b/file.txt
# --- a/file.txt
# +++ b/file.txt
# @@ -1,5 +1,9 @@

গিট ব্যবহার করে নির্বাচিত পরিবর্তন কমিট করা

কমান্ড লাইন ইন্টারফেস (CLI) স্ক্রিপ্ট

git commit -m "Commit message for partial changes"
# This command commits the changes you have staged interactively.

# Ensure you've reviewed the changes before committing.
# Use 'git status' to check what changes have been staged:
# $ git status
# On branch main
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
# modified:   file.txt

Git GUI ব্যবহার করে পরিবর্তনের নির্বাচনী মঞ্চায়ন

গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) পদ্ধতি

# Open your Git GUI client, e.g., GitKraken, Sourcetree, or Git GUI.
# Locate the file with changes you want to stage partially.

# View the file's diff. Most GUI clients allow you to select specific
# lines or hunks to stage by clicking checkboxes or using context menus.

# Stage the selected changes. This typically involves right-clicking
# the selected lines and choosing an option like 'Stage Hunk' or 'Stage Selected Lines'.

# After staging the desired changes, commit them with an appropriate message.

সিলেক্টিভ স্টেজিংয়ের জন্য গিট এক্সটেনশন ব্যবহার করা

ভিএস কোড এক্সটেনশন

# Install the GitLens extension in VS Code.
# Open the file with changes in VS Code.

# In the source control panel, you'll see the list of changes.
# Click on the file to view its diff.

# Use the inline staging buttons provided by GitLens to stage specific lines.
# Hover over the left gutter to see the '+' button for staging individual lines.

# Once you've staged the desired lines, commit the changes via the source control panel.

Git-এ আংশিক কমিট করার জন্য উন্নত কৌশল

Git-এ ফাইলের পরিবর্তনের শুধুমাত্র অংশ করার আরেকটি দিক হল প্যাচ ফাইল ব্যবহার করা। প্যাচ ফাইলগুলি আপনাকে একটি ফাইল তৈরি করতে দেয় যা আপনি যে পরিবর্তনগুলি প্রয়োগ করতে চান তার প্রতিনিধিত্ব করে এবং তারপর আপনি এই প্যাচটি আপনার সংগ্রহস্থলে প্রয়োগ করতে পারেন। একটি প্যাচ ফাইল তৈরি করতে, আপনি ব্যবহার করতে পারেন git diff একটি ফাইলে পুনঃনির্দেশিত আউটপুট সহ কমান্ড। উদাহরণ স্বরূপ, git diff > changes.patch আপনার ওয়ার্কিং ডিরেক্টরিতে পার্থক্য সহ একটি প্যাচ ফাইল তৈরি করবে। তারপরে আপনি এই প্যাচ ফাইলটি ম্যানুয়ালি সম্পাদনা করতে পারেন শুধুমাত্র আপনি যে পরিবর্তনগুলি করতে চান তা অন্তর্ভুক্ত করতে।

আপনার প্যাচ ফাইল হয়ে গেলে, আপনি এটি ব্যবহার করে প্রয়োগ করতে পারেন git apply আদেশ এই পদ্ধতিটি বিশেষভাবে উপযোগী যখন অন্যান্য ডেভেলপারদের সাথে সহযোগিতা করা হয় বা যখন আপনি পরিবর্তনগুলি প্রয়োগ করার আগে পর্যালোচনা করতে চান। আরেকটি উন্নত কৌশল ব্যবহার করা হয় git stash সঙ্গে কমান্ড -p বিকল্প এটি আপনাকে ইন্টারেক্টিভভাবে পরিবর্তনগুলি লুকিয়ে রাখতে দেয়, অনুরূপ git add -p, কিন্তু প্রতিশ্রুতির জন্য পরিবর্তনগুলি মঞ্চস্থ করার পরিবর্তে, এটি পরবর্তী ব্যবহারের জন্য সেগুলিকে আটকে রাখে। এটি অস্থায়ীভাবে পরিবর্তনগুলিকে প্রতিশ্রুতিবদ্ধ না করে একপাশে সেট করার জন্য কার্যকর হতে পারে, আপনাকে আপনার কাজ পরিচালনার ক্ষেত্রে নমনীয়তা দেয়।

Git-এ আংশিক কমিট সম্পর্কে সাধারণ প্রশ্ন

  1. আমি কিভাবে একটি ফাইলে শুধুমাত্র নির্দিষ্ট লাইন স্টেজ করতে পারি?
  2. ব্যবহার git add -p ইন্টারেক্টিভভাবে কোন লাইন স্টেজ করতে হবে তা নির্বাচন করতে কমান্ড।
  3. আমি যদি ভুল লাইন মঞ্চস্থ করি?
  4. আপনি ব্যবহার করে লাইন আনস্টেজ করতে পারেন git reset HEAD <file> আদেশ
  5. আমি কি আংশিক কমিটের জন্য একটি GUI টুল ব্যবহার করতে পারি?
  6. হ্যাঁ, GitKraken এবং Sourcetree-এর মতো টুলগুলি আপনাকে নির্দিষ্ট লাইন বা পরিবর্তনের হাঙ্কগুলি স্টেজ করার অনুমতি দেয়।
  7. আমি কিভাবে আমার পরিবর্তনের সাথে একটি প্যাচ ফাইল তৈরি করব?
  8. ব্যবহার git diff > changes.patch একটি প্যাচ ফাইল তৈরি করার জন্য কমান্ড।
  9. আমি কিভাবে একটি প্যাচ ফাইল প্রয়োগ করব?
  10. ব্যবহার git apply আপনার সংগ্রহস্থলে একটি প্যাচ ফাইল প্রয়োগ করার কমান্ড।
  11. ব্যবহার করে কি লাভ git stash -p?
  12. এটি আপনাকে ইন্টারেক্টিভভাবে পরিবর্তনগুলি লুকিয়ে রাখতে দেয়, আপনাকে প্রতিশ্রুতি ছাড়াই আপনার কাজ পরিচালনা করার নমনীয়তা দেয়।
  13. প্রতিশ্রুতি দেওয়ার আগে আমি কীভাবে পরিবর্তনগুলি পর্যালোচনা করতে পারি?
  14. ব্যবহার git status এবং git diff মঞ্চায়ন এবং প্রতিশ্রুতি দেওয়ার আগে পরিবর্তনগুলি পর্যালোচনা করার আদেশ দেয়।
  15. আমি কি আংশিকভাবে ভিএস কোড ব্যবহার করে পরিবর্তন করতে পারি?
  16. হ্যাঁ, VS কোডে GitLens এক্সটেনশন ব্যবহার করে আপনি সরাসরি সম্পাদক থেকে নির্দিষ্ট লাইনগুলি স্টেজ করতে পারবেন।

গিটে আপনার পরিবর্তনের সারসংক্ষেপ

Git-এ আংশিক প্রতিশ্রুতি পরিচালনা করা নিশ্চিত করে যে আপনার প্রকল্পের ইতিহাস পরিষ্কার এবং পরিচালনাযোগ্য। ইন্টারেক্টিভ স্টেজিং কমান্ড ব্যবহার করে, আপনি প্রতিটি প্রতিশ্রুতিতে ঠিক কোন পরিবর্তনগুলি অন্তর্ভুক্ত করবেন তা চয়ন করতে পারেন। এটি পরিবর্তনের একটি যৌক্তিক ক্রম বজায় রাখতে সাহায্য করে এবং সম্পর্কহীন পরিবর্তনের বিশৃঙ্খলা এড়ায়। উপরন্তু, GitKraken এবং VS Code-এর GitLens এক্সটেনশনের মতো টুলগুলি নির্দিষ্ট লাইন বা কোডের হাঙ্কগুলি স্টেজ করার জন্য গ্রাফিকাল ইন্টারফেস প্রদান করে এই প্রক্রিয়াটিকে সহজ করে। প্যাচ ফাইল তৈরি এবং প্রয়োগ করার মতো উন্নত পদ্ধতিগুলি আরও নমনীয়তা যোগ করে, যা আপনাকে আপনার সংগ্রহস্থলে কমিট করার আগে পরিবর্তনগুলিকে আরও কার্যকরভাবে পর্যালোচনা এবং পরিচালনা করতে দেয়।

গিটে আংশিক প্রতিশ্রুতি নিয়ে চূড়ান্ত চিন্তাভাবনা

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