GitBeginner
Staging Area ও git add-এর শক্তি
Staging area কী, ফাইল কীভাবে stage/unstage করা যায় — বাংলায়।
17টি অংশবাংলা ভাষায়
Staging Area আসলে কী?
Staging Area (বা Index) হলো commit করার আগের একটি মধ্যবর্তী জায়গা। আপনি সিদ্ধান্ত নেন — এই commit-এ কোন কোন পরিবর্তন ঢুকবে। এটি না থাকলে সব পরিবর্তন জোর করে commit হয়ে যেত।
একটি ফাইলের ধাপগুলোbash
bash
echo "update" >> README.md # 1. Working Directory
git add README.md # 2. Staging Area
git commit -m "docs: update" # 3. Repositorygit add-এর বিভিন্ন রূপ
| কমান্ড | কী করে |
|---|---|
| git add file.txt | একটি নির্দিষ্ট ফাইল stage |
| git add . | সব নতুন/পরিবর্তিত ফাইল stage |
| git add -A | সব ফাইল (delete সহ) stage |
| git add -u | tracked ফাইলগুলোই stage (নতুন নয়) |
| git add src/**/*.js | glob pattern দিয়ে stage |
| git add -p | একটি ফাইলের অংশ-অংশ stage |
অংশ-অংশ stage করা (-p)
git add -p দিয়ে আপনি একটি ফাইলের কিছু hunk (অংশ) stage করতে পারেন — বাকিটা না করে। বড় refactor-এ এটি দারুণ কাজে লাগে, কারণ তখন commit ছোট ও পরিষ্কার রাখা যায়।
git add -p src/utils.js
# Stage this hunk [y,n,q,a,d,s,e,?]?অপশনগুলোর অর্থ
y— এই hunk stage করোn— এই hunk stage করবে নাq— stage করা বন্ধ করোs— hunk কে আরও ছোট ভাগে ভাগ করোe— manually edit করে stage করো
ফাইল unstage করা
Staging থেকে বের করাbash
bash
git restore --staged README.md # আধুনিক
git reset README.md # পুরোনো (কাজ একই)কী stage হয়েছে তা দেখা
git diff # unstaged পরিবর্তন
git diff --staged # staged পরিবর্তন (প্রস্তুত)ফাইল staging থেকে পুরোপুরি সরানো
git rm --cached secret.env # repo থেকে remove, disk-এ থাকবেমনে রাখুন
Staging Area-কে মানসিকভাবে একটি tray হিসেবে ভাবুন — আপনি ঠিক করেন কোন ফাইলগুলো এই commit-এ যাবে। একসাথে সব stage না করে, প্রতিটি commit আলাদা আলাদা logical কাজ।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।