GitHub এর হাতেখড়ি (পর্ব ৩) – History দেখা ও পরিবর্তন ফিরিয়ে আনা

Git ও GitHub-এর হাতেখড়ি — পর্ব ৩: History দেখা ও পরিবর্তন ফিরিয়ে আনা

আগের পর্বে আমরা শিখেছি কীভাবে একটি Git repository তৈরি করতে হয় এবং git add, git commit দিয়ে পরিবর্তন সংরক্ষণ করতে হয়।

কিন্তু commit করার পর সেই history দেখব কীভাবে? আর যদি কোনো ভুল হয়ে যায়, তাহলে আগের অবস্থায় কীভাবে ফিরে যাব? আজকের পর্বে আমরা ঠিক এই বিষয়গুলোই শিখব।

Commit History দেখা — git log

তোমার repository-তে এতদিন যত commit করেছ, সেগুলোর সম্পূর্ণ history দেখতে ব্যবহার করা হয়:

git log

এই command চালালে প্রতিটি commit-এর জন্য দেখতে পাবে:

  • Commit-এর একটি unique ID (hash)
  • কে commit করেছে (author)
  • কখন commit করা হয়েছে (date)
  • Commit message

History-টা যদি এক লাইনে সংক্ষেপে দেখতে চাও, তাহলে ব্যবহার করতে পারো:

git log --oneline

এতে প্রতিটি commit শুধু ছোট hash আর message আকারে একলাইনে দেখাবে, ফলে পুরো history-টা এক নজরে দেখা সহজ হয়।

a1b2c3d Fix login button alignment
e4f5g6h Add navbar to homepage
i7j8k9l Initial commit

পরিবর্তন তুলনা করা — git diff

কোনো file-এ ঠিক কী পরিবর্তন হয়েছে সেটা দেখতে ব্যবহার করা হয় git diff

যদি তুমি কোনো file পরিবর্তন করো কিন্তু এখনো git add না করে থাকো, তাহলে working directory আর সর্বশেষ commit-এর মধ্যে পার্থক্য দেখতে চালাও:

git diff

এই command চালালে যে line-গুলো মুছে ফেলা হয়েছে সেগুলো - চিহ্ন দিয়ে (লাল রঙে) এবং নতুন যোগ হওয়া line-গুলো + চিহ্ন দিয়ে (সবুজ রঙে) দেখানো হয়।

যদি ইতিমধ্যে git add করে ফেলেছ, তাহলে staged পরিবর্তন দেখতে ব্যবহার করো:

git diff --staged

পুরনো Version-এ ফিরে যাওয়া — git restore

ধরো তুমি একটি file পরিবর্তন করলে, কিন্তু এখনো commit করোনি। এখন মনে হলো এই পরিবর্তনটা রাখতে চাও না — আগের অবস্থায় ফিরে যেতে চাও। তখন ব্যবহার করো:

git restore index.html

এই command চালালে index.html file-টি সর্বশেষ commit-এর অবস্থায় ফিরে যাবে, অর্থাৎ তোমার এখন পর্যন্ত করা পরিবর্তন মুছে যাবে।

সতর্কতা: এই command চালালে uncommitted পরিবর্তন স্থায়ীভাবে হারিয়ে যায়, তাই সাবধানে ব্যবহার করবে।

যদি কোনো file ভুলবশত staging area-তে যোগ হয়ে যায় (git add করা হয়ে গেছে), কিন্তু commit করতে চাও না, তাহলে সেটাকে unstage করতে পারো:

git restore --staged index.html

এতে file-টি staging area থেকে সরে যাবে, কিন্তু working directory-তে তোমার করা পরিবর্তন অক্ষত থাকবে।

পুরনো Commit-এর file দেখা — git checkout

কখনো কখনো তুমি জানতে চাইবে কোনো নির্দিষ্ট পুরনো commit-এ একটি file কেমন ছিল। এজন্য প্রথমে git log --oneline দিয়ে commit hash খুঁজে নাও, তারপর চালাও:

git checkout a1b2c3d -- index.html

এখানে a1b2c3d হলো commit hash। এই command চালালে index.html file-টি সেই নির্দিষ্ট commit-এর অবস্থায় ফিরে আসবে, তবে বাকি file-গুলো অপরিবর্তিত থাকবে।

সর্বশেষ Commit ঠিক করা — git commit --amend

অনেক সময় commit করার পরপরই বুঝতে পারো message-এ ভুল ছিল, বা কোনো file যোগ করতে ভুলে গেছ। এমন ক্ষেত্রে পুরো নতুন commit না করে amend করা যায়।

শুধু commit message ঠিক করতে চাইলে:

git commit --amend -m "Correct commit message"

আর যদি কোনো file যোগ করতে ভুলে গিয়ে থাকো, তাহলে আগে সেই file stage করো, তারপর amend করো:

git add forgotten-file.html
git commit --amend --no-edit

এখানে --no-edit দিলে আগের commit message অপরিবর্তিত থাকবে, শুধু file-টি সর্বশেষ commit-এ যুক্ত হবে।

সতর্কতা: শুধুমাত্র সর্বশেষ commit amend করা নিরাপদ। GitHub-এ push করা commit amend করলে জটিলতা তৈরি হতে পারে — এই বিষয়ে বিস্তারিত জানব পরবর্তী পর্বগুলোতে।

আজকের কমান্ডগুলো এক নজরে

git log                              → পুরো history দেখা
git log --oneline                    → সংক্ষিপ্ত history দেখা
git diff                             → uncommitted পরিবর্তন দেখা
git diff --staged                    → staged পরিবর্তন দেখা
git restore ফাইলের-নাম                → পরিবর্তন বাতিল করা
git restore --staged ফাইলের-নাম       → unstage করা
git checkout hash -- ফাইলের-নাম       → পুরনো version-এ ফেরা
git commit --amend                   → সর্বশেষ commit ঠিক করা

Practice Task

এখন নিজে হাতে নিচের কাজগুলো করে দেখো:

  1. আগের পর্বের project folder-এ গিয়ে git log --oneline চালিয়ে history দেখো।
  2. একটি file-এ পরিবর্তন করে (commit না করে) git diff চালিয়ে পার্থক্য দেখো।
  3. git restore দিয়ে সেই পরিবর্তন বাতিল করো।
  4. একটি নতুন commit করে, তারপর git commit --amend দিয়ে message ঠিক করে দেখো।

আজ আমরা শিখলাম কীভাবে Git-এর history দেখতে হয়, পরিবর্তন তুলনা করতে হয়, এবং ভুল হলে কীভাবে আগের অবস্থায় ফিরে যেতে হয়। পরের পর্বে আমরা শিখব .gitignore ব্যবহার করে কোন file track করা উচিত না তা ঠিক করা, এবং একটি ভালো README.md কীভাবে লিখতে হয়।

একটি মন্তব্য পোস্ট করুন

নবীনতর পূর্বতন

যোগাযোগ ফর্ম