কম্পিউটার টিউটোরিয়াল

.gitignore মাস্টার করুন: Git ফাইল এক্সক্লুশনের বিনীতদের গাইড

.gitignore ফাইলগুলো একটি লোকাল প্রজেক্টে Git যেসব ফাইল ইগনোর করবে তার তালিকা ধারণ করে। একটি .gitignore ফাইল সাধারণত একটি প্রজেক্টের মেন ডিরেক্টরিতে দেখা যায়। আপনি একক ফাইল, একাধিক ফাইল বা ফোল্ডার ইগনোর করতে পারেন।

আপনার কিছু ফাইল থাকতে পারে যেগুলো আপনি আপনার Git রিপোজিটরির মেন ভার্সনে ইনক্লুড করতে চান না। এই ফাইলগুলিতে কনফিগারেশন বা লোকাল ভেরিয়েবল থাকতে পারে যা প্রাইভেট এবং অন্যান্য কলাবোরেটরদের দ্বারা দেখা উচিত নয়।

এখানেই .gitignore ফাইলটি কাজে আসে। এই ফাইল আপনাকে Git-কে ফাইল ইগনোর করার নির্দেশ দিতে দেয়।

এই গাইডে, আমরা .gitignore কী, এটি কীভাবে কাজ করে এবং আপনি আপনার নিজের .gitignore ফাইল কীভাবে লিখবেন তা আলোচনা করব। আর দেরি ছাড়া, শুরু করা যাক!

.gitignore ফাইল কী?

একটি .gitignore ফাইল যেসব ফাইল Git ইগনোর করবে সেসব ফাইল লিস্ট করে। .gitignore ফাইলগুলো সাধারণত একটি প্রজেক্টের রুট ডিরেক্টরিতে থাকে। Git দ্বারা ট্র্যাক করা ফাইলগুলো ইগনোর করা হয় না যদি না আপনি সেগুলো প্রজেক্ট থেকে রিমুভ করেন।

Git যখন আপনি সেগুলো একটি কমিটে যোগ করেন। এর মানে প্রতিটি ফাইল, কনফিগারেশন ফাইল এবং কম্পাইল্ড কোড সহ, একটি কমিটে যোগ হবে যদি আপনি * অপারেটর ব্যবহার করেন। এই অপারেটর সকল ফাইলকে একটি কমিটে স্টেজ করে।

প্রায়শই ডেভেলপাররা আউটপুট ফোল্ডার, হিডেন সিস্টেম ফাইল এবং কম্পাইল্ড কোড ইগনোর করতে চান। উদাহরণস্বরূপ, আপনার একটি রিপোজিটরিতে .env ফাইল থাকলে, আপনি সেটি হাইড করতে চাইতে পারেন। কারণ .env ফাইলগুলো সাধারণত API কী ধারণ করে যা আপনি অনেক লোকের এক্সেস থাকা একটি রিপোজিটরিতে কমিট করতে চান না।

আপনি ফাইল ইগনোর করতে কোনো ignore কমান্ড ব্যবহার করতে পারবেন না। আপনাকে .gitignore ফাইলে আপনি যেসব ফাইল ইগনোর করতে চান সেগুলোর একটি তালিকা তৈরি করতে হবে।

.gitignore ফাইল কীভাবে লিখবেন

একটি .gitignore ফাইল তৈরি করা সহজ। একটি কমান্ড শেল খুলুন এবং একটি প্রজেক্টের রুট ডিরেক্টরিতে .gitignore নামে একটি টেক্সট ফাইল তৈরি করুন। আপনি touch কমান্ড ব্যবহার করে এটি করতে পারেন:

আমরা একটি .gitignore ফাইল তৈরি করেছি। আমাদের ফাইল কোনো কনফিগারেশন সেটিংস দিয়ে সেট আপ করার দরকার নেই। আমাদের পরবর্তী ধাপ হলো আমরা যেসব ফাইল ইগনোর করতে চাই সেসব ফাইলের তালিকা যোগ করা। এই ফাইলগুলো আনট্র্যাকড ফাইল হয়ে যায়, যা একটি লোকাল রিপোজিটরিতে Git দ্বারা ইগনোর করা ফাইল বোঝানোর অন্য একটি শব্দ।

নিচের .gitignore ফাইলটি বিবেচনা করুন:

এই ফাইল দুটি রিসোর্স ইগনোর করে: node_modules ডিরেক্টরির সকল ফাইল এবং .env ফাইল। আমরা আমাদের লোকাল রিপোজিটরিতে দুটি নির্দিষ্ট রিসোর্স ইগনোর করেছি: একটি ফোল্ডার এবং একটি ফাইল।

এটি JavaScript প্রজেক্টের সাথে একটি সাধারণ সেটআপ। node_modules একটি প্রজেক্টের জন্য আপনি যেসব ডিপেন্ডেন্সি ব্যবহার করছেন সেসবের লোকাল কপি ধারণ করে। এটি একটি রিপোজিটরিতে কমিট করা অপ্র্যাক্টিক্যাল যখন আপনি নিজে এই ডিপেন্ডেন্সি ইনস্টল করতে পারেন। .env ফাইল API কী ধারণ করে। অনেক লোকের এক্সেস থাকা একটি রিপোজিটরিতে API কী শেয়ার করা খারাপ অনুশীলন।

চলুন ধরি আমরা একাধিক ফাইল বা ডিরেক্টরি ইগনোর করতে চাই। আমরা * ওয়াইল্ডকার্ড ব্যবহার করে এটি করতে পারি।

চলুন একটি রিপোজিটরিতে সকল .pyc ফাইল ইগনোর করি:

যেসব ফাইলের নাম প্যাটার্ন *.pyc-এ মেলে সেগুলো ইগনোর হবে। এস্টেরিস্ক হলো ওয়াইল্ডকার্ড অপারেটর।

GitHub একটি চমৎকার গিটইগনোর ফাইল সংগ্রহ তৈরি করেছে যা আপনি তাদের সাইটে ব্যবহার করতে পারেন। GitHub-এর gitignore ফাইল সংগ্রহ দেখুন।

একাধিক .gitignore ফাইল ব্যবহার করা

আপনি একই রিপোজিটরিতে একাধিক .gitignore ফাইল ব্যবহার করতে পারেন। এটি কাজ করে কারণ .gitignore সেটি যেখানে রাখা হয়েছে সেটি ডিরেক্টরির সাথে রিলেটিভ।

আমাদের শেষ উদাহরণে, আমরা .gitignore কে আমাদের প্রজেক্টের রুট ডিরেক্টরিতে রাখেছিলাম। ধরি আমরা diff/ ফোল্ডারে .pyc দিয়ে শেষ হওয়া সকল ফাইল ইগনোর করতে চাই। আমরা কমান্ড লাইন ব্যবহার করে diff ফোল্ডারে .gitignore নামে একটি ফাইল তৈরি করে এটি করতে পারি:

আমরা .gitignore ফাইলে নিচের রুলটি যোগ করব:

যখন আমরা আমাদের রিপোজিটরিতে কোড কমিট করতে যাব, Git diff/ ফোল্ডারে যেকোনো ফাইল যা .pyc দিয়ে শেষ হয় সেটি ইগনোর করবে।

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

এই .gitignore একটি Git প্রজেক্টের রুট ডিরেক্টরিতে আছে। এটি Git-কে প্রজেক্টে .txt দিয়ে শেষ হওয়া সকল ফাইল ইগনোর করতে বলে। এটিও Git-কে diff/ ফোল্ডারে .pyc দিয়ে শেষ হওয়া সকল ফাইল ইগনোর করতে বলে।

গ্লোবাল Git ইগনোর রুল কীভাবে তৈরি করবেন

প্রতিটি প্রজেক্টের জন্য একটি .gitignore ফাইল ডিফাইন করা সময়সাপেক্ষ হতে পারে। এর অধিক, আপনি সাধারণত পাবেন যে আপনার অধিকাংশ প্রজেক্ট একই সেট .gitignore রুল ব্যবহার করে।

আপনি একটি গ্লোবাল git ignore রুল সেট করতে পারেন যা আপনার সিস্টেমের প্রতিটি রিপোজিটরির জন্য অটোমেটিক্যালি gitignore রুল সেট করবে। এই ফাইলটি সাধারণত আপনার অপারেটিং সিস্টেমের হোম ডিরেক্টরিতে রাখা হয়, যেমন /home/your_username বা /Users/your_username।

চলুন একটি গ্লোবাল .gitignore ফাইল তৈরি করি:

এই কমান্ড আমাদের হোম ডিরেক্টরিতে একটি খালি .gitignore ফাইল তৈরি করে। এই ফাইলটি খুলুন এবং আপনার সিস্টেমের সকল Git রিপোজিটরির জন্য আপনি যেসব রুল সেট করতে চান সেগুলো যোগ করুন।

.gitignore মাস্টার করুন: Git ফাইল এক্সক্লুশনের বিনীতদের গাইড
"Career Karma আমার জীবনে ঢুকেছিল যখন আমার সেটি সবচেয়ে বেশি দরকার ছিল এবং দ্রুত একটি বুটক্যাম্পের সাথে মিলিয়ে দিয়েছিল। গ্র্যাজুয়েট হওয়ার দুই মাস পর আমি আমার স্বপ্নের চাকরি পেয়েছিলাম যা আমার মূল্যবোধ এবং লক্ষ্যের সাথে মিলে যেত!"

— ভেনাস, সফটওয়্যার ইঞ্জিনিয়ার, রকবট

আপনার বুটক্যাম্প ম্যাচ খুঁজুন

একবার আপনি আপনার gitignore ফাইল কনফিগার করলে, আপনি এর রুলস এনফোর্স করতে পারেন core.excludesFile প্রোপার্টি ব্যবহার করে:

git config --global core.excludesFile ~/.gitignore

এই কমান্ড ~/.gitignore ফাইলের রুলসকে একটি কম্পিউটারের সকল Git রিপোজিটরিতে অ্যাপ্লাই করে।

গ্লোবাল git ignore রুল ডিফাইন করার সময় সতর্ক रहুন। কারণ একটি গ্লোবাল .gitignore-এ রুলস ডিফল্টভাবে সকল প্রজেক্টে সেট থাকে।

একটি গ্লোবাল .gitignore ফাইল সাধারণ ফাইল যেমন .env জন্য সেরা যা আপনি σχεদই কোনো git রিপোজিটরিতে কমিট করতে চান না।

একটি কমিটেড ফাইল কীভাবে ইগনোর করবেন

আপনি সবসময় অগ্রিমে অনুমান করতে পারবেন না কোন ফাইলগুলো আপনি একটি প্রজেক্টে ইগনোর করতে চান। সেটি হতে পারে যে আপনি পূর্বে একটি ফাইল একটি রিপোজিটরিতে কমিট করেছেন কিন্তু এখন আপনি সেটি ইগনোর করতে চান।

চলুন config.json ফাইলটি ইগনোর করি। এই ফাইলটি ইতিমধ্যে আমাদের রিপোজিটরিতে কমিট করা আছে। আমরা আমাদের .gitignore ফাইলে একটি ইগনোর রুল যোগ করলে শুরু করব:

echo config.json >> .gitignore

এই কমান্ড config.json কে আমাদের .gitignore ফাইলের শেষে অ্যাপেন্ড করে। এখন আমাদের রিপোজিটরি থেকে ফাইলটি রিমুভ করতে হবে। আমরা এটি git rm --cached কমান্ড ব্যবহার করে করতে পারি। এই কমান্ড শুধু একটি ফাইলকে আপনার রিপোজিটরি থেকে রিমুভ করবে। এটি আপনার কম্পিউটারে একটি লোকাল ফাইল হিসেবে থাকবে।

git rm --cached config.json

আপনি পরবর্তীতে কমিট তৈরি করলে, config.json ফাইলটি ইগনোর হবে।

একটি ইগনোরড ফাইল কীভাবে কমিট করবেন

আপনি আপনার .gitignore ফাইলে ইগনোর করা একটি ফাইল কমিট করতে পারেন।

এটি উপকারী হতে পারে যদি আপনি ডিফল্ট কনফিগ ফাইল তৈরি করেন যেগুলো আপনি একটি রিপোজিটরিতে কমিট করতে চান যা অন্যথায় ইগনোর হতো। আপনি -f ফ্ল্যাগ ব্যবহার করে একটি ফাইল স্টেজিং এরিয়ায় যোগ করার সময় একটি ইগনোরড ফাইল কমিট করতে পারেন:

git add -f config.json
git commit -m "feat: Create default config file"

এই কোড config.json ফাইলকে স্টেজিং এরিয়ায় যোগ করে। তারপর স্টেজিং এরিয়ার কন্টেন্টের ভিত্তিতে একটি কমিট তৈরি করে। git add সম্পর্কে আরও পড়ুন আমাদের git add টিউটোরিয়ালে। git commit কমান্ড সম্পর্কে পড়ুন আমাদের git commit টিউটোরিয়ালে।

উপসংহার

.gitignore ফাইল আপনাকে একটি Git রিপোজিটরিতে ফাইল ইগনোর করতে দেয়।

আপনি আপনার প্রজেক্টের লোকাল কপির সকল ফাইল আপনার কমিটে ইনক্লুড করতে চান না। উদাহরণস্বরূপ, আপনি কম্পাইল্ড কোড, বা সিস্টেম লগ, বা কনফিগ ফাইল কমিট করতে চান না। ফাইল ইগনোর করতে, আপনি .gitignore-এ যেসব ফাইল ইগনোর করতে চান সেগুলো স্পেসিফাই করতে পারেন।

একটি প্রজেক্টে একাধিক .gitignore ফাইল থাকতে পারে। আপনি git add কমান্ড ব্যবহার করার সময় -f ফ্ল্যাগ ব্যবহার করে একটি .gitignore রুল ওভাররাইড করতে পারেন।

এখন আপনি .gitignore ফাইল একজন এক্সপার্টের মতো ব্যবহার করতে পারেন!

  1. Tkinter-এ সিলেক্ট করা টেক্সটে রঙিন টেক্সট যোগ করার পদ্ধতি

  2. Oracle APEX আবিষ্কার করুন: লো-কোড পাওয়ার সাথে ডেভেলপমেন্ট ত্বরান্বিত করুন

  3. HTML DOM Area অবজেক্ট

  4. Elasticsearch বাস্তবে: ৫টি প্রমাণিত ইউজ কেস