৩ দিনে git এবং Github basic আজকে ২য় পর্ব

Day 2

**git remove, git reset, Git ls, Git Branch, git, merge**

![Cream Happy Teacher's Day LinkedIn Post|500x500](upload://tIVKKHkNamge521Z2WQwvSevVuL.jpeg)

Git বা সাধারণ টার্মিনালে ফাইল ও ফোল্ডার দেখতে ls কমান্ডটি ব্যবহার করা হয়। ls কমান্ডের মাধ্যমে আপনার বর্তমান ডিরেক্টরির সব ফাইল ও ফোল্ডার চেক করতে পারবেন।

ls কমান্ডের ব্যবহার:

  1. ফাইল এবং ফোল্ডার চেক করা:

    • যদি আপনি বর্তমান ডিরেক্টরির সব ফাইল ও ফোল্ডার দেখতে চান, তাহলে শুধু ls কমান্ড চালান।

    কমান্ড:

    ls
    

    উদাহরণ:

    $ ls
    folder1  folder2  index.html  style.css
    

    এখানে আপনি folder1, folder2, index.html, এবং style.css ফাইল ও ফোল্ডার দেখতে পাবেন।

  2. বিস্তারিত তথ্য সহ ফাইল ও ফোল্ডার চেক করা:

    • যদি আপনি ফাইলের বিস্তারিত তথ্য (যেমন পারমিশন, সাইজ, তৈরি হওয়ার তারিখ) দেখতে চান, তাহলে ls -l কমান্ডটি ব্যবহার করুন।

    কমান্ড:

    ls -l
    

    উদাহরণ:

    $ ls -l
    drwxr-xr-x  2 user group 4096 Sep 25 10:00 folder1
    drwxr-xr-x  2 user group 4096 Sep 25 10:00 folder2
    -rw-r--r--  1 user group  220 Sep 25 10:01 index.html
    -rw-r--r--  1 user group  110 Sep 25 10:02 style.css
    

    এখানে আপনি ফাইল ও ফোল্ডারের পারমিশন, মালিকের নাম, ফাইলের সাইজ, এবং তৈরির সময় সম্পর্কে জানতে পারবেন।

  3. গোপন (হিডেন) ফাইল চেক করা:

    • গোপন ফাইলগুলো দেখতে ls -a ব্যবহার করতে হবে। সাধারণত, গোপন ফাইলগুলোর নামের আগে একটি ডট (.) থাকে, যেমন .git.

    কমান্ড:

    ls -a
    

    উদাহরণ:

    $ ls -a
    .  ..  .git  folder1  folder2  index.html
    

    এখানে .git ফাইলটি একটি গোপন ফাইল, যেটি সাধারণ ls কমান্ড দিয়ে দেখা যায় না।

  4. একই সঙ্গে বিস্তারিত ও গোপন ফাইল চেক করা:

    • আপনি যদি একসঙ্গে ফাইল ও ফোল্ডারের বিস্তারিত এবং গোপন ফাইলগুলোও দেখতে চান, তাহলে ls -la ব্যবহার করতে পারেন।

    কমান্ড:

    ls -la
    

    উদাহরণ:

    $ ls -la
    drwxr-xr-x  5 user group 4096 Sep 25 10:00 .
    drwxr-xr-x  3 user group 4096 Sep 25 09:59 ..
    drwxr-xr-x  8 user group 4096 Sep 25 10:00 .git
    drwxr-xr-x  2 user group 4096 Sep 25 10:00 folder1
    -rw-r--r--  1 user group  220 Sep 25 10:01 index.html
    -rw-r--r--  1 user group  110 Sep 25 10:02 style.css
    

সারসংক্ষেপ:

  • ls : বর্তমান ডিরেক্টরির সব ফাইল ও ফোল্ডার দেখাবে।
  • ls -l : ফাইল ও ফোল্ডারের বিস্তারিত তথ্য দেখাবে।
  • ls -a : গোপন ফাইলসহ সব ফাইল দেখাবে।
  • ls -la : গোপন ফাইলসহ সব ফাইলের বিস্তারিত তথ্য দেখাবে।
    ……………………………………………

git remove এবং git reset কমান্ডের উদ্দেশ্য এবং ব্যবহার কীভাবে কাজ করে তা উদাহরণসহ ব্যাখ্যা নিচে দেওয়া হলো:


1. git remove (Git থেকে ফাইল মুছে ফেলা)

  • কাজ: এই কমান্ডের মাধ্যমে কোনো ফাইল গিট রিপোজিটরি থেকে মুছে ফেলা হয়। তবে, এটি শুধুমাত্র গিটের রিপোজিটরি থেকে ফাইলটি সরায়, আপনার লোকাল সিস্টেমে (কাজের ফোল্ডারে) ফাইলটি থেকে যেতে পারে।

সাধারণ কমান্ড:

git rm <filename>

উদাহরণ:
ধরুন আপনি “index.html” নামের একটি ফাইল গিট রিপোজিটরি থেকে মুছে ফেলতে চান। কমান্ড হবে:

git rm index.html
git commit -m "Removed index.html file"

উপরের কমান্ড চালালে, “index.html” ফাইলটি গিটের রিপোজিটরি থেকে মুছে যাবে এবং “Removed index.html file” বার্তাসহ এটি কমিট করা হবে।

অতিরিক্ত:

  • আপনি চাইলে লোকাল সিস্টেম থেকেও ফাইল মুছে দিতে পারেন এই অপশন সহ:
    git rm index.html --cached
    
    এই কমান্ডটি ফাইলটি শুধু রিপোজিটরি থেকে মুছে দেবে, কিন্তু আপনার লোকাল সিস্টেমে রেখে দেবে।

2. git reset (রিপোজিটরির পরিবর্তন পূর্বাবস্থায় নিয়ে আসা)

  • কাজ: এই কমান্ডটি ফাইলের পরিবর্তনগুলিকে পূর্বাবস্থায় ফিরিয়ে আনে। গিটের রিপোজিটরির ইতিহাস পরিবর্তন করতে, অথবা স্টেজিং এরিয়াতে থাকা পরিবর্তনগুলো বাদ দিতে ব্যবহৃত হয়।

কিছু ধরণের git reset:

  1. git reset --soft: কমিট বাতিল করবে, কিন্তু ফাইলের পরিবর্তনগুলো রাখা থাকবে।
  2. git reset --mixed (ডিফল্ট): কমিট এবং স্টেজিং এরিয়ার পরিবর্তন বাতিল করবে, কিন্তু ফাইলের লোকাল পরিবর্তনগুলো থাকবে।
  3. git reset --hard: সবকিছু পূর্বাবস্থায় নিয়ে যাবে, কমিট ও ফাইলের পরিবর্তন উভয়ই মুছে দেবে।

উদাহরণ:
ধরুন, আপনি ভুল করে একটি কমিট করেছেন এবং এটি বাতিল করতে চান:

git reset --soft HEAD~1

এই কমান্ডটি শেষ করা কমিটটি বাতিল করবে, কিন্তু ফাইলের পরিবর্তনগুলো ঠিক থাকবে। আপনি সেগুলো আবার কমিট করতে পারবেন যদি প্রয়োজন হয়।

আবার ধরুন, আপনি সব পরিবর্তন বাতিল করতে চান এবং রিপোজিটরিকে পূর্বের অবস্থায় নিয়ে আসতে চান:

git reset --hard HEAD

এই কমান্ডটি আপনার সব পরিবর্তন মুছে ফেলবে এবং রিপোজিটরিকে পূর্বাবস্থায় ফিরিয়ে নিয়ে যাবে। স্টেজিং এরিয়া ও লোকাল পরিবর্তন উভয়ই মুছে যাবে।


উদাহরণসহ ব্যবহার:

ফাইল মুছে ফেলা (git rm):

  1. নতুন ফাইল তৈরি করা:
    touch test.txt
    
  2. ফাইলটিকে গিটে যোগ করা:
    git add test.txt
    git commit -m "Added test.txt"
    
  3. এখন ফাইলটি রিপোজিটরি থেকে মুছে ফেলতে:
    git rm test.txt
    git commit -m "Removed test.txt"
    

git reset ব্যবহার:

  1. ধরুন, আপনি একটি ফাইল পরিবর্তন করেছেন এবং কমিট করেছেন:

    echo "Hello World" > hello.txt
    git add hello.txt
    git commit -m "Added hello.txt"
    
  2. যদি আপনি ভুলে যান এবং শেষ কমিটটি বাতিল করতে চান:

    git reset --soft HEAD~1
    

    এটি আপনার কমিট বাতিল করবে, কিন্তু ফাইলের পরিবর্তন থাকবে।

  3. যদি আপনি সমস্ত পরিবর্তন বাতিল করতে চান:

    git reset --hard HEAD
    

সারসংক্ষেপ:

  • git rm: ফাইল গিট রিপোজিটরি থেকে সরিয়ে ফেলে। উদাহরণ: git rm filename
  • git reset: ফাইল বা কমিটের পরিবর্তন পূর্বাবস্থায় ফিরিয়ে আনে। উদাহরণ: git reset --hard
    ……………………………………

Git Branch কী?

git branch ব্যবহার করে আপনি গিটের মধ্যে নতুন ব্রাঞ্চ তৈরি করতে পারেন, ব্রাঞ্চ পরিবর্তন করতে পারেন এবং বিদ্যমান ব্রাঞ্চগুলো দেখতে পারেন। একটি প্রজেক্টে বিভিন্ন ফিচার বা কাজ আলাদাভাবে মেইন (মূল) কোডের সঙ্গে মিলিয়ে না রেখে নতুন ব্রাঞ্চে কাজ করা নিরাপদ। পরবর্তীতে কাজ শেষ হলে মেইন ব্রাঞ্চের সাথে এই নতুন ব্রাঞ্চকে মিশিয়ে (merge) নেওয়া যায়।

Git Branch সম্পর্কিত গুরুত্বপূর্ণ কমান্ড ও উদাহরণ:


1. ব্রাঞ্চ তৈরি করা

  • কমান্ড:

    git branch <branch-name>
    
  • উদাহরণ:
    আপনি যদি feature-1 নামে একটি নতুন ব্রাঞ্চ তৈরি করতে চান:

    git branch feature-1
    

এই কমান্ডটি চালালে নতুন ব্রাঞ্চ তৈরি হবে, কিন্তু আপনি স্বয়ংক্রিয়ভাবে এই ব্রাঞ্চে চলে যাবেন না। আপনি এখনো আগের ব্রাঞ্চে আছেন।


2. ব্রাঞ্চে স্যুইচ/চেঞ্জ করা (Checkout)

  • কমান্ড:

    git checkout <branch-name>
    
  • উদাহরণ:
    আপনি যদি feature-1 ব্রাঞ্চে যেতে চান:

    git checkout feature-1
    

এই কমান্ডটি আপনাকে feature-1 ব্রাঞ্চে নিয়ে যাবে এবং এখান থেকে আপনি নতুন পরিবর্তনগুলো করতে পারবেন।


3. নতুন ব্রাঞ্চ তৈরি করা এবং সরাসরি সেই ব্রাঞ্চে স্যুইচ করা

  • কমান্ড:

    git checkout -b <branch-name>
    
  • উদাহরণ:
    আপনি যদি feature-2 নামে নতুন ব্রাঞ্চ তৈরি করে সরাসরি সেই ব্রাঞ্চে স্যুইচ করতে চান:

    git checkout -b feature-2
    

এই কমান্ডটি নতুন ব্রাঞ্চ তৈরি করবে এবং আপনাকে সেই ব্রাঞ্চে নিয়ে যাবে।


4. বিদ্যমান সব ব্রাঞ্চ দেখতে

  • কমান্ড:

    git branch
    
  • উদাহরণ:

    $ git branch
    * main
      feature-1
      feature-2
    

এখানে আপনি দেখতে পাচ্ছেন যে main, feature-1, এবং feature-2 নামে তিনটি ব্রাঞ্চ আছে। বর্তমানে আপনি main ব্রাঞ্চে আছেন, কারণ তার আগে * চিহ্ন রয়েছে।


5. ব্রাঞ্চ মুছে ফেলা

  • কমান্ড:

    git branch -d <branch-name>
    
  • উদাহরণ:
    আপনি যদি feature-1 ব্রাঞ্চটি মুছে ফেলতে চান:

    git branch -d feature-1
    

এটি feature-1 ব্রাঞ্চটি মুছে ফেলবে যদি সেই ব্রাঞ্চের কাজ সম্পন্ন হয়ে থাকে এবং মেইন ব্রাঞ্চে মার্জ করা থাকে।

যদি ব্রাঞ্চটি মার্জ করা না থাকে এবং আপনি জোর করে মুছে ফেলতে চান, তাহলে:

git branch -D feature-1

6. ব্রাঞ্চ মার্জ (Merge) করা

  • কমান্ড:

    git merge <branch-name>
    
  • উদাহরণ:
    যদি আপনি feature-2 ব্রাঞ্চের পরিবর্তনগুলো main ব্রাঞ্চে আনতে চান, তাহলে প্রথমে main ব্রাঞ্চে যান:

    git checkout main
    

    এরপর feature-2 ব্রাঞ্চকে main ব্রাঞ্চের সাথে মার্জ করুন:

    git merge feature-2
    

এই কমান্ডটি feature-2 ব্রাঞ্চের সব পরিবর্তন main ব্রাঞ্চে নিয়ে আসবে।


সম্পূর্ণ উদাহরণ:

  1. নতুন ব্রাঞ্চ তৈরি এবং চেকআউট করা:

    git checkout -b feature-login
    
  2. কিছু পরিবর্তন করা এবং সেগুলো যোগ করা:

    echo "Login feature code" > login.html
    git add login.html
    git commit -m "Added login feature"
    
  3. মূল ব্রাঞ্চে ফিরে আসা:

    git checkout main
    
  4. feature-login ব্রাঞ্চের কাজ মূল ব্রাঞ্চে (main) মার্জ করা:

    git merge feature-login
    
  5. অপ্রয়োজনীয় ব্রাঞ্চ মুছে ফেলা:

    git branch -d feature-login
    

সারসংক্ষেপ:

  • git branch <branch-name>: নতুন ব্রাঞ্চ তৈরি করে।
  • git checkout <branch-name>: ব্রাঞ্চ পরিবর্তন করে।
  • git checkout -b <branch-name>: নতুন ব্রাঞ্চ তৈরি করে এবং তাতে স্যুইচ করে।
  • git branch: বিদ্যমান সব ব্রাঞ্চ দেখায়।
  • git branch -d <branch-name>: ব্রাঞ্চ মুছে ফেলে।
  • git merge <branch-name>: একটি ব্রাঞ্চের কাজ অন্য ব্রাঞ্চে মার্জ করে।

১ম পর্ব

6 Likes

Thank you. Please include first part link and maintain link over the series.

3 Likes

MashaAllah. I appreciate for this.

1 Like

দয়া করে প্রথম পর্বের লিংক যুক্ত করুন।

পর্ব - ১: ৩ দিনে git এবং Github basic শেষ আজকে প্রথম দিন

1 Like


vai fast post ta edit korte partesi na