## .gitignore বোঝা

`.gitignore` ফাইলটি Git-এর কর্মপ্রবাহের একটি অপরিহার্য উপাদান। এটি Git-কে বলে যে কোন ফাইল এবং ফোল্ডারগুলিকে উপেক্ষা করতে হবে, যা আপনার সংগ্রহস্থলে অপ্রয়োজনীয় বা সংবেদনশীল ডেটা ট্র্যাক করা থেকে বিরত রাখে।

## কেন .gitignore ব্যবহার করবেন?

কিছু ফাইল সংস্করণ নিয়ন্ত্রণে অন্তর্ভুক্ত করা উচিত নয় কারণ সেগুলি হল:
- অস্থায়ী বা সিস্টেম-উত্পাদিত (যেমন, ক্যাশে, বিল্ড ফাইল, লগ)
- বৃহৎ নির্ভরতা যা পুনরায় ইনস্টল করা যেতে পারে (যেমন, `node_modules`)
- ব্যক্তিগত বা সংবেদনশীল কনফিগারেশন ফাইল (যেমন, API কী, পরিবেশ ভেরিয়েবল)
- IDE বা সম্পাদক-নির্দিষ্ট ফাইল (যেমন, `.vscode/`, `.idea/`)

এই ফাইলগুলি উপেক্ষা করলে সংগ্রহস্থল পরিষ্কার থাকে, দ্বন্দ্ব হ্রাস পায় এবং নিরাপত্তা ঝুঁকি প্রতিরোধ করে।

## একটি .gitignore ফাইল তৈরি করা

একটি `.gitignore` ফাইল তৈরি করতে:

১. আপনার প্রোজেক্ট রুট ডিরেক্টরিতে, `.gitignore` নামে একটি নতুন টেক্সট ফাইল তৈরি করুন।

২. আপনি যে ফাইল এবং ফোল্ডারগুলিকে উপেক্ষা করতে চান তার তালিকা তৈরি করুন, প্রতি লাইনে একটি করে।

৩. ফাইলটি সংরক্ষণ করুন।

### .gitignore এর জন্য মৌলিক সিনট্যাক্স
- `*` → একাধিক ফাইল মেলানোর জন্য ওয়াইল্ডকার্ড।
- `/` → `.gitignore` এর সাথে সম্পর্কিত পথ নির্দিষ্ট করে।
- `#` → মন্তব্য যোগ করে।

### উদাহরণ .gitignore ফাইল:
```sh
# ম্যাক সিস্টেম ফাইল উপেক্ষা করুন
.DS_Store

# নির্ভরতা ফোল্ডার উপেক্ষা করুন
node_modules/

venv/

# লগ এবং ক্যাশে ফাইল উপেক্ষা করুন
*.log
.cache/

# পরিবেশ ফাইল উপেক্ষা করুন
.env

# সকল টেক্সট ফাইল উপেক্ষা করুন
*.txt
```

## গ্লোবাল .gitignore (সকল প্রকল্পের জন্য)
একটি গ্লোবাল `.gitignore` ফাইল তৈরি করতে (সকল সংগ্রহস্থলের ক্ষেত্রে প্রযোজ্য):
```sh
git config --global core.excludesfile ~/.gitignore_global
```
তারপর, `~/.gitignore_global` সম্পাদনা করুন যেমন আপনি একটি স্থানীয় `.gitignore` করবেন।

## গিট ট্র্যাকিং থেকে ফাইল অপসারণ

যদি কোনও ফাইল `.gitignore` এ যোগ করার আগে ইতিমধ্যেই কমিট করা হয়ে থাকে, তাহলে আপনাকে এটি ট্র্যাকিং থেকে সরিয়ে ফেলতে হবে:

- **একটি ফাইল আনট্র্যাক করুন** (তবে স্থানীয়ভাবে রাখুন):
```sh
git rm --cached filename
```

- **সকল উপেক্ষা করা ফাইল আনট্র্যাক করুন**:
``sh
git rm -r --cached .

git add .

git commit -m "আপডেট করা .gitignore"
```

`git rm --cached filename` পূর্বাবস্থায় ফেরাতে, ব্যবহার করুন:
``sh
git add filename
```