The Core Loop
Essential | Estimated time: 45–60 minutes
এই সেকশনটি Git-এর মূল ভিত্তি (Core)। এখানে যা শিখবে সেটা প্রতিদিন ব্যবহার করবে — চাকরিতে হোক, client project-এ হোক, বা নিজের project-এ।
What You’ll Learn
git init— নতুন project-এ Git শুরু করাgit clone— GitHub থেকে project নামানোgit add— কোন changes save করবে সেটা select করাgit commit— changes permanently record করাgit push— GitHub-এ upload করাgit pull— GitHub থেকে latest changes নামানোgit statusএবংgit log— কী হচ্ছে সেটা দেখা.gitignore— কোন files Git track করবে না সেটা বলা
The Big Picture
Git কীভাবে কাজ করে এটা বোঝা খুব জরুরি। কাজ শুরু করার আগে একটা mental model বুঝে নাও। Git-এর মূল ওয়ার্কিং ফ্লো (Working Flow) অনুযায়ী তোমার কোড মূলত চারটি ধাপে বা জায়গায় কাজ করে:
সহজ কথায়:
Working Directory
তুমি file edit করো
Staging Area
git add করো (save করার list-এ উঠল)
Repository
git commit করো (permanently recorded)
GitHub
git push করো (internet-এ গেল)
Start Project
নতুন প্রোজেক্ট শুরু করা বা গিটহাব থেকে ক্লোন করার প্রক্রিয়া দেখে নাও।
Option A: নিজে শুরু (git init)
তুমি নতুন একটা project বানাচ্ছ, GitHub-এ এখনো কিছু নেই।
# প্রথমে একটা folder বানাও
mkdir my-first-project
cd my-first-project
# এই folder-এ Git চালু করো
git initOutput:
Initialized empty Git repository in /home/you/my-first-project/.git/এই মানে .git নামে একটা hidden folder তৈরি হয়েছে। এই folder-এই Git তোমার সব history রাখে।
Pro Tip: git init শুধু একবার করতে হয় — project-এর শুরুতে। বারবার করতে হয় না।
Daily Workflow
প্রতিদিনের কাজে যে গিট কমান্ডগুলো সবচেয়ে বেশি প্রয়োজন হবে।
এই workflow তুমি প্রতিদিন follow করবে। এটি Git-এর সবচেয়ে গুরুত্বপূর্ণ অংশ।
Check Status
তোমার বর্তমান কাজের অবস্থা এবং ফাইলে কোনো পরিবর্তন এসেছে কিনা দেখে নাও।
কাজ শুরু করার আগে দেখো কী অবস্থা:
git statusনতুন repo-তে output:
On branch main
No commits yet
nothing to commit (create/copy files and start working)একটা file বানানোর পর:
# একটা file বানাও
echo "# My First Project" > README.md
# আবার status দেখো
git statusOutput:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present“Untracked” মানে Git এই file-এর existence জানে, কিন্তু এখনো track করছে না।
Stage Changes
কোন পরিবর্তনগুলো সেভ করতে চাও সেগুলো স্টেজিং এরিয়াতে যোগ করো।
কোন changes save করতে চাও সেটা Git-কে বলো:
# একটা specific file add করো
git add README.md
# একাধিক file add করো
git add index.html style.css
# সব changes একসাথে add করো
git add .git add . সাবধানে ব্যবহার করো।
এটা সব changed files একসাথে add করে। কাজের সময় অনেকে accidentally secret files বা বড় files add করে ফেলে। .gitignore শেখার পর এটা safer হবে (দেখো Ignore Files সেকশন)।
Add করার পর status দেখো:
git statusOutput-এ Changes to be committed: এর মানে file Staging Area-এ আছে — commit করার জন্য ready।
Permanent Commit
তোমার কাজের একটি স্থায়ী রেকর্ড বা স্ন্যাপশট তৈরি করো।
এখন permanently record করো:
git commit -m "Initial commit: add README"Output:
[main (root-commit) a1b2c3d] Initial commit: add README
1 file changed, 1 insertion(+)
create mode 100644 README.md-m flag মানে message। Quotation-এর ভেতরে তুমি লিখছ এই commit-এ কী করলে।
Better Commits
পেশাদার এবং অর্থবহ কমিট মেসেজ লেখার কিছু গুরুত্বপূর্ণ নিয়ম।
Commit message হলো তোমার কাজের diary। ৬ মাস পর তুমি বা তোমার teammate যখন history দেখবে, তখন বুঝতে পারবে কে কী করেছিল।
❌ Bad Messages
fix
update
changes
asdf
doneনিয়ম:
- Present tense লেখো (“Add” না “Added”)
- ছোট রাখো — ৫০ character-এর মধ্যে
- কী করলে সেটা বলো, কেন করলে সেটা না হলেও চলে (ছোট changes-এ)
Push to GitHub
তোমার লোকাল মেশিন থেকে লেটেস্ট কোড গিটহাবের রিমোট রিপোজিটরিতে আপলোড করো।
তোমার local commit গুলো GitHub-এ পাঠাও।
Create Repo
গিটহাবে একটি নতুন রিপোজিটরি তৈরি করার ধাপগুলো দেখে নাও।
- GitHub-এ যাও → New repository
- Repository name দাও
- Private বা Public select করো
- “Add a README file” tick দিও না
- Create repository click করো
Add Remote
তোমার লোকাল রিপোজিটরির সাথে গিটহাবের কানেকশন তৈরি করো।
Terminal-এ:
git remote add origin git@github.com:username/my-first-project.gitFinal Push
সবশেষে তোমার কোড গিটহাবের মেইন ব্রাঞ্চে আপলোড করো।
git push -u origin main-u origin main মানে: “এখন থেকে git push করলেই origin-এর main branch-এ যাবে।” পরের বার থেকে শুধু git push লিলেই হবে।
Pull Changes
গিটহাবের রিমোট রিপোজিটর থেকে লেটেস্ট পরিবর্তনগুলো তোমার লোকাল মেশিনে নিয়ে এসো।
Team-এ কাজ করলে বা অন্য machine থেকে কাজ করলে, GitHub-এ নতুন changes থাকতে পারে। সেগুলো নামাও:
git pullGood habit: কাজ শুরু করার আগে সবসময় git pull করো। এতে তুমি latest code
দিয়ে কাজ শুরু করবে।
View History
তোমার প্রোজেক্টের সব কমিট বা কাজের ইতিহাস একনজরে দেখে নাও।
তোমার সব commits দেখতে:
git logএকটু সংক্ষেপে দেখতে:
git log --onelineOutput:
e4f5g6h Add contact page
a1b2c3d Initial commit: add READMEIgnore Files
যে ফাইলগুলো তুমি গিটে রাখতে চাও না সেগুলো ইগনোর করার নিয়ম।
কিছু files আছে যেগুলো Git-এ রাখা উচিত না। এগুলো ignore করতে project root-এ .gitignore নামে একটা file বানাও:
- .env
- .gitignore
- README.md
File-এর ভেতরে লেখো:
# Dependencies
node_modules/
# Environment variables (NEVER commit this!)
.env
.env.local
# OS files
.DS_Storeসবচেয়ে বড় ভুল: .env file commit করে GitHub-এ push করা। এতে তোমার API
keys, database passwords সব public হয়ে যায়। সবসময় .env কে .gitignore-এ
রাখো।
Full Workflow
প্রতিদিনের কাজ শুরু থেকে শেষ করার একটি আদর্শ গিট ওয়ার্কফ্লো।
এটাই তুমি প্রতিদিন করবে:
Pull Latest
কাজ শুরুর আগে latest pull করো git pull
Work
কাজ করো (files edit করো)
Inspect Status
কী কী change হয়েছে দেখো git status
Stage Changes
Changes stage করো git add .
Commit
Commit করো git commit -m "Add feature"
Push
GitHub-এ push করো git push
Common Problems & Fixes
Push Error
error: failed to push some refs...কারণ: GitHub-এ নতুন changes আছে যেটা তোমার কাছে নেই।
Fix: git pull তারপর git push
What’s Next?
Daily workflow শেখা হয়ে গেছে। এখন শিখবে Git-এর সবচেয়ে powerful feature —
→ Branching & Merging
একই project-এ একাধিক কাজ একসাথে করা, team-এর সাথে conflict ছাড়া কাজ করা — সব এখানে।