Day 2
**git remove, git reset, Git ls, Git Branch, git, merge**
Git বা সাধারণ টার্মিনালে ফাইল ও ফোল্ডার দেখতে ls
কমান্ডটি ব্যবহার করা হয়। ls
কমান্ডের মাধ্যমে আপনার বর্তমান ডিরেক্টরির সব ফাইল ও ফোল্ডার চেক করতে পারবেন।
ls
কমান্ডের ব্যবহার:
-
ফাইল এবং ফোল্ডার চেক করা:
- যদি আপনি বর্তমান ডিরেক্টরির সব ফাইল ও ফোল্ডার দেখতে চান, তাহলে শুধু
ls
কমান্ড চালান।
কমান্ড:
ls
উদাহরণ:
$ ls folder1 folder2 index.html style.css
এখানে আপনি
folder1
,folder2
,index.html
, এবংstyle.css
ফাইল ও ফোল্ডার দেখতে পাবেন। - যদি আপনি বর্তমান ডিরেক্টরির সব ফাইল ও ফোল্ডার দেখতে চান, তাহলে শুধু
-
বিস্তারিত তথ্য সহ ফাইল ও ফোল্ডার চেক করা:
- যদি আপনি ফাইলের বিস্তারিত তথ্য (যেমন পারমিশন, সাইজ, তৈরি হওয়ার তারিখ) দেখতে চান, তাহলে
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
এখানে আপনি ফাইল ও ফোল্ডারের পারমিশন, মালিকের নাম, ফাইলের সাইজ, এবং তৈরির সময় সম্পর্কে জানতে পারবেন।
- যদি আপনি ফাইলের বিস্তারিত তথ্য (যেমন পারমিশন, সাইজ, তৈরি হওয়ার তারিখ) দেখতে চান, তাহলে
-
গোপন (হিডেন) ফাইল চেক করা:
- গোপন ফাইলগুলো দেখতে
ls -a
ব্যবহার করতে হবে। সাধারণত, গোপন ফাইলগুলোর নামের আগে একটি ডট (.) থাকে, যেমন.git
.
কমান্ড:
ls -a
উদাহরণ:
$ ls -a . .. .git folder1 folder2 index.html
এখানে
.git
ফাইলটি একটি গোপন ফাইল, যেটি সাধারণls
কমান্ড দিয়ে দেখা যায় না। - গোপন ফাইলগুলো দেখতে
-
একই সঙ্গে বিস্তারিত ও গোপন ফাইল চেক করা:
- আপনি যদি একসঙ্গে ফাইল ও ফোল্ডারের বিস্তারিত এবং গোপন ফাইলগুলোও দেখতে চান, তাহলে
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
:
git reset --soft
: কমিট বাতিল করবে, কিন্তু ফাইলের পরিবর্তনগুলো রাখা থাকবে।git reset --mixed
(ডিফল্ট): কমিট এবং স্টেজিং এরিয়ার পরিবর্তন বাতিল করবে, কিন্তু ফাইলের লোকাল পরিবর্তনগুলো থাকবে।git reset --hard
: সবকিছু পূর্বাবস্থায় নিয়ে যাবে, কমিট ও ফাইলের পরিবর্তন উভয়ই মুছে দেবে।
উদাহরণ:
ধরুন, আপনি ভুল করে একটি কমিট করেছেন এবং এটি বাতিল করতে চান:
git reset --soft HEAD~1
এই কমান্ডটি শেষ করা কমিটটি বাতিল করবে, কিন্তু ফাইলের পরিবর্তনগুলো ঠিক থাকবে। আপনি সেগুলো আবার কমিট করতে পারবেন যদি প্রয়োজন হয়।
আবার ধরুন, আপনি সব পরিবর্তন বাতিল করতে চান এবং রিপোজিটরিকে পূর্বের অবস্থায় নিয়ে আসতে চান:
git reset --hard HEAD
এই কমান্ডটি আপনার সব পরিবর্তন মুছে ফেলবে এবং রিপোজিটরিকে পূর্বাবস্থায় ফিরিয়ে নিয়ে যাবে। স্টেজিং এরিয়া ও লোকাল পরিবর্তন উভয়ই মুছে যাবে।
উদাহরণসহ ব্যবহার:
ফাইল মুছে ফেলা (git rm
):
- নতুন ফাইল তৈরি করা:
touch test.txt
- ফাইলটিকে গিটে যোগ করা:
git add test.txt git commit -m "Added test.txt"
- এখন ফাইলটি রিপোজিটরি থেকে মুছে ফেলতে:
git rm test.txt git commit -m "Removed test.txt"
git reset
ব্যবহার:
-
ধরুন, আপনি একটি ফাইল পরিবর্তন করেছেন এবং কমিট করেছেন:
echo "Hello World" > hello.txt git add hello.txt git commit -m "Added hello.txt"
-
যদি আপনি ভুলে যান এবং শেষ কমিটটি বাতিল করতে চান:
git reset --soft HEAD~1
এটি আপনার কমিট বাতিল করবে, কিন্তু ফাইলের পরিবর্তন থাকবে।
-
যদি আপনি সমস্ত পরিবর্তন বাতিল করতে চান:
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
ব্রাঞ্চে নিয়ে আসবে।
সম্পূর্ণ উদাহরণ:
-
নতুন ব্রাঞ্চ তৈরি এবং চেকআউট করা:
git checkout -b feature-login
-
কিছু পরিবর্তন করা এবং সেগুলো যোগ করা:
echo "Login feature code" > login.html git add login.html git commit -m "Added login feature"
-
মূল ব্রাঞ্চে ফিরে আসা:
git checkout main
-
feature-login
ব্রাঞ্চের কাজ মূল ব্রাঞ্চে (main) মার্জ করা:git merge feature-login
-
অপ্রয়োজনীয় ব্রাঞ্চ মুছে ফেলা:
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>
: একটি ব্রাঞ্চের কাজ অন্য ব্রাঞ্চে মার্জ করে।