নতুনদের জন্য Git ও GitHub: প্রতিদিনের কাজের ধারা
Git আপনার কোডের ইতিহাস রাখে এবং দলকে একসাথে কাজ করতে দেয়। প্রতিদিন যে কয়েকটি কমান্ড ও অভ্যাস লাগবে শিখুন।

Git একটি version control সিস্টেম: এটি আপনার প্রজেক্টের ইতিহাস রাখে যাতে কী বদলেছে দেখতে, ফিরে যেতে এবং অন্যদের সাথে কাজ করতে পারেন। GitHub (এবং GitLab, Bitbucket) এমন ওয়েবসাইট যা Git repository হোস্ট করে এবং pull request-এর মতো সহযোগিতার টুল যোগ করে। Git হলো টুল; GitHub সংরক্ষণ ও শেয়ারের জায়গা।
মূল ধারণা
- Repository (repo): আপনার প্রজেক্ট folder ও তার ইতিহাস।
- Commit: বার্তাসহ আপনার বদলের snapshot।
- Branch: আলাদা কাজের ধারা, যাতে নিরাপদে পরীক্ষা করতে পারেন।
- Remote: server-এ repo-র একটি কপি, সাধারণত
originনামে। - Clone, pull, push: remote repo কপি, অন্যদের বদল আনা, নিজেরটি পাঠানো।
ফাইল তিন জায়গা দিয়ে যায়: working directory (সম্পাদনা), staging area (পরের commit-এ যা যাবে) এবং repository (commit করা ইতিহাস)।
সেটআপ (একবার)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
প্রতিদিনের চক্র
git status # কী বদলেছে?
git add file.js # একটি ফাইল stage (বা: git add .)
git commit -m "Add login form validation"
git push # remote-এ পাঠানো
git pull # অন্যদের বদল আনা
git log --oneline # ইতিহাস
git diff # unstaged বদল দেখা
Commit বার্তায় কী ও কেন বর্তমান কালে লিখুন: "Fix crash when the cart is empty"। ছোট, কেন্দ্রীভূত commit করুন।
প্রজেক্ট শুরু
git init # এই folder-এ নতুন repo
git clone https://github.com/user/repo.git # বিদ্যমান একটি কপি
স্থানীয় repo প্রকাশ করতে GitHub-এ ফাঁকা repo বানান, তারপর:
git remote add origin <url>
git push -u origin main
Branch
git switch -c feature/search # নতুন branch বানিয়ে সেখানে যাওয়া
# ...কাজ ও commit...
git switch main
git merge feature/search # কাজ main-এ আনা
git branch -d feature/search # শেষ হওয়া branch মোছা
main চালু রাখুন। নতুন কাজ branch-এ করুন।
Pull request ধারা
বেশিরভাগ দল এভাবে কাজ করে:
১. main হালনাগাদ করুন: git pull।
২. কাজের জন্য branch বানান।
৩. কাজ commit করে branch push করুন।
৪. GitHub-এ pull request (PR) খুলুন। কী ও কেন লিখুন।
৫. সতীর্থরা পর্যালোচনা ও মন্তব্য করে, আর স্বয়ংক্রিয় যাচাই (test) চলে।
৬. মতামত আরও commit দিয়ে ঠিক করুন।
৭. PR merge করুন, তারপর branch মুছে main pull করুন।
Merge conflict
দুটি বদল একই লাইন ছুঁলে conflict হয়। Git ফাইলে চিহ্নিত করে:
<<<<<<< HEAD
your version
=======
their version
>>>>>>> feature/search
ফাইল সঠিক চূড়ান্ত লেখায় সম্পাদনা করুন, চিহ্ন সরান, তারপর ফাইল git add করে git commit করুন (বা merge বা rebase চালিয়ে যান)। ঘাবড়াবেন না। ঘন ঘন pull করলে conflict ছোট থাকে।
ভুল ফেরানো
- ফাইল unstage:
git restore --staged file - ফাইলের স্থানীয় সম্পাদনা বাতিল:
git restore file(সম্পাদনা হারায়) - শেষ commit বার্তা ঠিক (এখনো push হয়নি):
git commit --amend - Push হওয়া commit নিরাপদে ফেরানো:
git revert <commit>তা উল্টে দেওয়া নতুন commit বানায়। - ধ্বংসের আগে দেখুন:
git reset --hardও force push (git push --force) কাজ মুছে বা শেয়ার করা ইতিহাস নতুন করে লিখতে পারে। নিশ্চিত না হলে শেয়ার করা branch-এ এড়ান। git reflogপ্রায়ই "হারানো" commit উদ্ধার করতে দেয়।
.gitignore ও secret
.gitignore ফাইল তালিকা করে Git কী ট্র্যাক করবে না:
node_modules/
.env
*.log
dist/
পাসওয়ার্ড, API key ও private key-র মতো secret কখনো commit করবেন না। Bot public repo কয়েক মিনিটেই scan করে। পরের commit-এ secret সরালে তা ইতিহাস থেকে সরে না। Secret commit হলে সঙ্গে সঙ্গে revoke ও rotate করুন, দরকারে ইতিহাস পরিষ্কার করুন।
Secret রাখুন environment variable বা secrets manager-এ, আর নকল মানসহ .env.example commit করুন।
ভালো অভ্যাস
- ঘন ঘন commit, নিয়মিত push (এটি backup-ও)।
- কাজ শুরুর আগে pull।
- প্রতি branch ও PR-এ একটি উদ্দেশ্য।
- প্রতিটি commit-এর আগে diff (
git diff,git status) পর্যালোচনা। - প্রতিটি প্রজেক্টে পরিষ্কার
README। - GitHub-এ
mainসুরক্ষিত করুন: PR পর্যালোচনা ও পাস করা যাচাই বাধ্যতামূলক। - অ্যাকাউন্টে two-factor চালু করুন এবং SSH key বা token ব্যবহার করুন।
মূল কথা: status, add, commit, push, pull, branch ও merge শিখুন। Pull request-সহ branch-এ কাজ করুন, .gitignore দিয়ে secret বাইরে রাখুন, এবং ধ্বংসাত্মক কমান্ডের আগে দেখে নিন।
প্রোগ্রামিং রোডম্যাপ সিরিজ, পর্ব ১ (শুরু করা): 2 নম্বর (মোট 5)। আগের লেখা: প্রোগ্রামিং শুরু করবেন কীভাবে: নতুনদের বাস্তবসম্মত রোডম্যাপ.


