AI দিয়ে তৈরি অ্যাপে Git কীভাবে ব্যবহার করবেন
AI দিয়ে তৈরি অ্যাপে Git ব্যবহার করতে হলে প্রজেক্টটিকে একটি Git রিপোজিটরির সঙ্গে যুক্ত করুন, প্রতিটি সফল পরিবর্তনের পর কমিট করুন, এক লাইনে লিখুন কী বদলেছে, আর .gitignore দিয়ে গোপন তথ্য বাইরে রাখুন। ঝুঁকিপূর্ণ কাজের জন্য ব্রাঞ্চ ব্যবহার করুন, অন্য কেউ কোড বদলে থাকলে আবার প্রম্পট দেওয়ার আগে পুল করুন, আর AI কিছু ভাঙলে ভাঙা অবস্থার ওপর আরও প্রম্পট না দিয়ে শেষ ভালো কমিটে ফিরে যান।
Git হলো ভার্সন কন্ট্রোল: আপনার কোডের প্রতিটি সংরক্ষিত সংস্করণের একটি ইতিহাস। GitHub হলো এমন একটি ওয়েবসাইট যেখানে Git রিপোজিটরি অনলাইনে রাখা হয়। এগুলো নতুন হলে আগে GitHub কী তা পড়ে নিন। এই গাইডটি সেই অভ্যাসগুলো নিয়ে, যেগুলো AI বেশিরভাগ কোড লেখার সময় Git-কে কাজের করে তোলে।
কেন AI-এর সঙ্গে Git বেশি গুরুত্বপূর্ণ
একটি AI এক টার্নে কুড়িটি ফাইল বদলাতে পারে। এটি দ্রুত, তবে এর মানে একটি প্রম্পট চুপচাপ এমন কিছু ভেঙে দিতে পারে যা আপনি গতকাল পরীক্ষা করেছিলেন। Git আপনাকে দেয়:
- ফিরে যাওয়ার উপায়। যেকোনো কমিট করা সংস্করণ ফিরিয়ে আনা যায়।
- কী বদলেছে তার রেকর্ড। একটি প্রম্পট ঠিক কোন ফাইল ও লাইন ছুঁয়েছে তা দেখা যায়।
- বিল্ডারের বাইরে একটি কপি। আপনার কোড এমন জায়গায় থাকে যা আপনি নিয়ন্ত্রণ করেন।
- একটি স্ট্যান্ডার্ড হস্তান্তর। যেকোনো ডেভেলপার, হোস্ট বা টুল একটি Git রিপোজিটরি থেকে কাজ করতে পারে।
ধাপ ১: একটি রিপোজিটরি যুক্ত করুন
GitHub বা অনুরূপ সেবায় একটি রিপোজিটরি তৈরি করুন (সাধারণত প্রাইভেট), আর আপনার প্রজেক্টটিকে সেটির সঙ্গে যুক্ত করুন। Git সমর্থন করে এমন বেশিরভাগ AI অ্যাপ বিল্ডার এটি একটি সেটিংস পাতার মাধ্যমে করে, যেখানে "Connect GitHub" বোতাম থাকে। আপনার বিল্ডারে তা না থাকলে কোড এক্সপোর্ট করে নিজে পুশ করতে পারেন, অথবা একবার সেটআপ করে দিতে কোনো ডেভেলপারকে বলতে পারেন।
প্রথম পুশের আগে নিশ্চিত করুন রিপোজিটরিটি এমন জিনিস বাদ দেয় যা তাতে থাকা উচিত নয়:
.gitignore ফাইলটি দেখুন। নিশ্চিত করুন এতে .env ফাইল, node_modules, বিল্ড আউটপুট ফোল্ডার এবং গোপন তথ্যযুক্ত সব ফাইল বাদ আছে। আপনি কী যোগ করেছেন তা আমাকে জানান।
ধাপ ২: প্রতিটি কাজের পরিবর্তনের পর কমিট করুন
কমিট হলো একটি বার্তাসহ সংরক্ষিত স্ন্যাপশট। যে অভ্যাসটি সবচেয়ে গুরুত্বপূর্ণ: কোনো কিছু কাজ করলে, পরের জিনিস চাওয়ার আগে কমিট করুন।
১. একটি পরিবর্তনের জন্য প্রম্পট দিন। ২. প্রিভিউতে দেখুন। ৩. কাজ করলে একটি বার্তাসহ কমিট (বা সিঙ্ক) করুন। ৪. তারপর এগিয়ে যান।
ছোট কমিটের মানে কিছু ভাঙলে আপনি জানেন কোন পরিবর্তন তা করেছে, আর সেটি ফিরিয়ে নিলে অন্য কাজ হারায় না।
ধাপ ৩: পরে পড়া যায় এমন বার্তা লিখুন
একটি ভালো বার্তা এক লাইনে বলে দেয় কী বদলেছে এবং কেন:
- ভালো:
Add CSV export to the orders page - ভালো:
Fix booking form rejecting times after 6pm - কাজের নয়:
update,changes,fix stuff
আপনি AI-কে দিয়েও এগুলো লেখাতে পারেন:
শেষ কমিটের পর থেকে যা বদলেছে তা এক লাইনে সারসংক্ষেপ করুন, একটি ক্রিয়াপদ দিয়ে শুরু করুন, ৭০ অক্ষরের নিচে রাখুন।
ধাপ ৪: ঝুঁকিপূর্ণ কাজের জন্য ব্রাঞ্চ ব্যবহার করুন
ব্রাঞ্চ হলো কাজের একটি আলাদা লাইন। আপনি ব্রাঞ্চে কিছু চেষ্টা করতে পারেন, আর কাজ না হলে মূল সংস্করণে হাত না দিয়েই সেটি ছেড়ে দিতে পারেন।
এই সময়গুলোতে ব্রাঞ্চ ব্যবহার করুন:
- পরিবর্তনটি বড় হলে (নকশা নতুন করা, নতুন পেমেন্ট ফ্লো, ডেটাবেস পরিবর্তন)।
- অন্য কেউ একই অ্যাপে কাজ করলে।
- লাইভ করার আগে কেউ পরিবর্তনটি পর্যালোচনা করুক চাইলে।
কাজ শেষ ও পরীক্ষিত হলে সেটি মূল ব্রাঞ্চে মার্জ হয়। GitHub-এ এটি সাধারণত একটি পুল রিকোয়েস্টের মাধ্যমে হয়, যা পর্যালোচনার জন্য পরিবর্তনগুলো দেখায়। আপনার বিল্ডার শুধু একটি ব্রাঞ্চ সিঙ্ক করলে GitHub-এর দিকের ব্রাঞ্চগুলো একজন ডেভেলপার সামলাতে পারেন।
ধাপ ৫: নিরাপদে ফিরে যান
কোনো প্রম্পট অ্যাপ ভেঙে দিলে তার ওপর আরও পাঁচবার প্রম্পট দেওয়ার ইচ্ছা দমন করুন। শেষ ভালো সংস্করণে ফিরে গিয়ে আরও স্পষ্ট একটি প্রম্পট দিয়ে চেষ্টা করুন।
- বিল্ডারে: এতে চেকপয়েন্ট বা রিস্টোর ফিচার থাকলে সেটি ব্যবহার করুন।
- Git-এ:
git revertএকটি নতুন কমিট তৈরি করে যা পুরোনো একটি কমিটকে বাতিল করে, ফলে ইতিহাস অক্ষত থাকে। যারা কোড পুল করেছে তাদের জন্য এটি নিরাপদ পছন্দ। - ভাগ করা ব্রাঞ্চে
git push --forceএড়িয়ে চলুন, যদি না জানেন কেন দরকার। এতে সবার জন্য ইতিহাস বদলে যায়।
নিশ্চিত না হলে জিজ্ঞেস করুন:
শেষ পরিবর্তনে লগইন পাতা ভেঙে গেছে। আগের কমিটের তুলনায় এটি কোন ফাইলগুলো বদলেছে দেখান, আর প্রতিটি পরিবর্তন কী করেছে ব্যাখ্যা করুন। এখনো কিছু বদলাবেন না।
ধাপ ৬: প্রম্পট দেওয়ার আগে পুল করুন
GitHub-এ কোনো ডেভেলপার বা অন্য টুল কোড বদলালে, আপনি সেই পরিবর্তনগুলো পুল না করা পর্যন্ত AI বিল্ডার তা জানে না। পুরোনো কোডে প্রম্পট দিলে সংঘর্ষ ও কাজ হারানো হয়।
- প্রতিটি সেশনের শুরুতে পুল করুন।
- কে কোন ফাইল সম্পাদনা করবে ঠিক করে নিন, আর একই সময়ে দুই পক্ষ একই ফাইল সম্পাদনা করা এড়িয়ে চলুন।
- মার্জ কনফ্লিক্ট (একই লাইনে দুটি পরিবর্তন) হলে ডেভেলপার বা AI-কে সমাধান করতে বলুন এবং তারা কেন সেই সিদ্ধান্ত নিয়েছে তা ব্যাখ্যা করতে বলুন।
উদাহরণ প্রম্পট
শুরু করার আগে: আমার শেষ সেশনের পর রিপোজিটরিতে কী বদলেছে? কমিটগুলো সারসংক্ষেপ করুন।
পরের পরিবর্তনটি আলাদাভাবে করুন: প্রতিটি ইনভয়েসে একটি "Duplicate" বোতাম যোগ করুন। আর কিছু বদলাবেন না, যাতে আমি এটি আলাদাভাবে কমিট করতে পারি।
যাচাই করুন Git-এ কোনো API কী, পাসওয়ার্ড বা .env ফাইল ট্র্যাক হচ্ছে কিনা, আগের কমিটগুলোসহ। শুধু ফাইলের নাম জানান, মান নয়।
সাধারণ ভুল
- গোপন তথ্য কমিট করা। একবার কোনো কী Git ইতিহাসে গেলে ফাইল মুছে ফেললেও তা প্রকাশ্য হয়ে যায়। কী বদলে ফেলুন।
- সপ্তাহে একটাই বিশাল কমিট। একটি পরিবর্তন বাতিল করতে হলে সবগুলোই বাতিল করতে হয়।
- "update"-এর মতো বার্তা। কী ভেঙেছে খুঁজতে ইতিহাস অকেজো হয়ে যায়।
- পুরোনো কোডে প্রম্পট দেওয়া। অন্য কেউ সম্পাদনা করলে আগে পুল করুন।
- ভুল ঠিক করতে ফোর্স-পুশ। এতে অন্যের কাজ মুছে যেতে পারে। বরং revert করুন।
node_modulesকমিট করা। এটি অনেক বড় এবং লক ফাইল থেকে এমনিতেই আবার তৈরি হয়।
চেকলিস্ট
- প্রজেক্টটি একটি প্রাইভেট রিপোজিটরির সঙ্গে যুক্ত।
-
.gitignoreবাদ দেয়.env,node_modules, বিল্ড আউটপুট ও গোপন তথ্য। - প্রতিটি সফল পরিবর্তনের পর আমি কমিট করি।
- কমিট বার্তা এক লাইনে বলে কী বদলেছে।
- বড় বা ঝুঁকিপূর্ণ পরিবর্তন ব্রাঞ্চে যায় ও পর্যালোচনা হয়।
- অন্য কেউ কোড সম্পাদনা করলে আমি প্রম্পট দেওয়ার আগে পুল করি।
- আমি চেকপয়েন্ট বা
git revertদিয়ে ফিরি, ফোর্স-পুশ করি না। - যেকোনো কী একবার কমিট হয়ে থাকলে তা বদলে ফেলা হয়েছে।
Mythex-এ Git
Mythex প্রতিটি সফল এজেন্ট টার্নের পর একটি Git চেকপয়েন্ট সংরক্ষণ করে, আর এই পয়েন্টে ফিরুন বোতামটি প্রজেক্টটিকে সেই অবস্থায় ফিরিয়ে নেয় — যা ধাপ ৫-এ বর্ণিত বিল্ডার-পক্ষের আনডু। দেখুন Iterate without rebuilding।
Pro-তে GitHub sync প্রজেক্ট সেটিংস থেকে একটি রিপোজিটরি যুক্ত করে, যাতে আপনি সেটির সঙ্গে পুশ ও পুল করতে পারেন, আর export গোপন তথ্য ও node_modules বাদ দিয়ে প্রজেক্ট ডাউনলোড করে। দেখুন GitHub, export, and import। কোনো ডেভেলপারকে প্রজেক্ট হস্তান্তর করার আগে GitHub যুক্ত করে নিলে হস্তান্তর অনেক সহজ হয় — দেখুন AI দিয়ে তৈরি অ্যাপে ডেভেলপারের সঙ্গে কীভাবে কাজ করবেন এবং AI দিয়ে তৈরি অ্যাপ কীভাবে এক্সপোর্ট করে নিজে হোস্ট করবেন।
প্রশ্নোত্তর
AI অ্যাপ বিল্ডারে চেকপয়েন্ট থাকলেও কি Git দরকার?
চেকপয়েন্ট আপনাকে তৈরির সময় ফিরে যেতে দেয়। Git বিল্ডারের বাইরে আপনার কোডের একটি কপি রাখে, এমন একটি ইতিহাস দেয় যা অন্যরা পড়তে পারে, আর কোনো ডেভেলপার বা অন্য টুল একই কোডে কাজ করার একটি স্ট্যান্ডার্ড উপায় দেয়। অ্যাপটি গুরুত্বপূর্ণ হলে দুটোই ব্যবহার করুন।
AI দিয়ে কাজ করার সময় কত ঘন ঘন কমিট করা উচিত?
প্রতিটি সফল পরিবর্তনের পর — সাধারণত প্রতিটি সফল প্রম্পট বা ছোট কয়েকটি প্রম্পটের পর। ছোট কমিট সহজ করে দেয় কোন একটি পরিবর্তন কিছু ভেঙেছে তা খুঁজে বের করা এবং সেটি ফিরিয়ে নেওয়া।
Git-এ কখনো কী কমিট করা উচিত নয়?
API কী, পাসওয়ার্ড, আসল মানসহ .env ফাইল, এবং node_modules-এর মতো ইনস্টল করা ডিপেন্ডেন্সি ফোল্ডার। প্রথম কমিটের আগে সেগুলো .gitignore-এ যোগ করুন, আর কোনো কী একবার কমিট হয়ে থাকলে তা বদলে ফেলুন।
GitHub-এ কোড সম্পাদনা করে কি AI দিয়ে কাজ চালিয়ে যাওয়া যায়?
হ্যাঁ, যদি আপনার বিল্ডার GitHub থেকে পরিবর্তন টানতে পারে। আবার প্রম্পট দেওয়ার আগে পুল করুন, যাতে AI সর্বশেষ কোডে কাজ করে, আর একই সময়ে দুই পক্ষ একই ফাইল সম্পাদনা করা এড়িয়ে চলুন।