Git মাস্টারি জার্নি — সম্পূর্ণ কারিকুলাম
Table of Contents
ভূমিকা / সৎ প্রেক্ষাপট
এই পোস্ট নিজে কোনো টিউটোরিয়াল না — এটা Git মাস্টারি জার্নি-র ম্যাপ। আসল কনটেন্ট (৩১৬টা ডিটেইলড লিফ, প্রতিটাতে ইন্টারনাল মেকানিজম + বাস্তব উদাহরণ + কোড) journey পাতাতেই আছে। এখানে শুধু বোঝানো হচ্ছে কী কী আছে, কোন অর্ডারে পড়বেন, আর কোন অংশটা আপনার এখন সবচেয়ে বেশি দরকার।
এই কারিকুলাম কী গ্যারান্টি দেয় না:
- এটা পড়লেই আপনি “গিট এক্সপার্ট” হয়ে যাবেন না — শুধু পড়া আর হাতে-কলমে করে দেখা এক জিনিস না। প্রতিটা মডিউলের ল্যাব (⭐) নিজে টার্মিনালে করে দেখুন।
- এটা কোনো নির্দিষ্ট GUI টুল (SourceTree, GitKraken) বা নির্দিষ্ট hosting platform (GitLab, Bitbucket)-এর স্ক্রিনশট-বেসড গাইড না — Git কমান্ড-লাইন আর তার ইন্টারনালস-কেন্দ্রিক।
কেন এত গভীরে যাওয়া দরকার: বেশিরভাগ ডেভেলপার Git-কে ৮-১০টা মুখস্থ কমান্ডের সেট হিসেবে ব্যবহার করেন — add, commit, push, pull, আর ভয় পেলে git status বারবার। কিন্তু যখন একটা rebase মাঝপথে আটকে যায়, বা reset --hard করার পর কাজ হারিয়ে যায়, বা একটা leaked secret কমিট হয়ে যায় — তখন মুখস্থ কমান্ড আর কাজ করে না। internals (object model, ref model, index) বুঝলে প্রতিটা এমার্জেন্সি সিনারিওই আসলে যুক্তিসঙ্গত, সমাধানযোগ্য একটা পাজল হয়ে যায়।
এই কারিকুলাম নিয়ে আরও context: ব্লগে আগে থেকেই থাকা গিট সিনারিও এবং তার সমাধান পোস্টটা একটা quick-reference (১০০টা সিনারিও → সমাধান)। এই জার্নি সেটার চেয়ে অনেক গভীর, structured, আর ইন্টারনালস-ফোকাসড — দুইটা একসাথে ব্যবহার করুন।
এই গাইড কীভাবে ব্যবহার করবেন
Journey পাতায় প্রতিটা মডিউলের ভেতরে একই প্যাটার্নের কয়েকটা লেয়ার থাকে:
| লেয়ার | কী পাবেন |
|---|---|
| What / How / Why | কনসেপ্ট বা কমান্ড কী, ভেতরে কীভাবে কাজ করে (object/ref/index মডেল), আর কেন দরকার — বাস্তব উদাহরণসহ |
| Do (ল্যাব) ⭐ | নিজে টার্মিনালে করার জন্য একটা স্টেপ-বাই-স্টেপ হ্যান্ডস-অন এক্সারসাইজ |
| পরীক্ষা | ৪-৬টা ইন্টারভিউ-স্টাইল প্রশ্ন-উত্তর, ঐ মডিউলের টপিক নিয়ে |
| কর্নার কেস | ঐ মডিউলের কমান্ডগুলোর সবচেয়ে কমন গোচরা/ফুটগান, আর তার ফিক্স |
কিছু মডিউলের শেষে একটা 🔑 চেকপয়েন্ট (gate) leaf থাকে — এটা একটা “আপনি কি সত্যিই পারবেন?” self-check, পরের Phase-এ যাওয়ার আগে। এগুলো এড়িয়ে না গিয়ে সত্যিকারের সেলফ-টেস্ট হিসেবে ব্যবহার করুন।
সাজেস্টেড অর্ডার: Phase ০ থেকে ১২ পর্যন্ত ক্রমানুসারে পড়াই সবচেয়ে ভালো — বিশেষ করে Phase 2 (Git Internals) স্কিপ করবেন না, কারণ Phase 3-এর পর থেকে প্রায় প্রতিটা ব্যাখ্যাই object/ref/index মডেলের টার্মে করা। যদি আপনি ইতিমধ্যে দৈনন্দিন Git ব্যবহারে comfortable, তাহলে সরাসরি Phase 2 থেকে শুরু করে Phase 12 পর্যন্ত পড়তে পারেন — Phase 0-1 আপনার জন্য রিক্যাপ হবে মাত্র।
সূচিপত্র
- Phase 0 — ওরিয়েন্টেশন
- Phase 1 — Local Workflow বেসিকস
- Phase 2 — Git Internals: Object Model
- Phase 3 — Branching ও Ref Model গভীরে
- Phase 4 — Merging, Rebasing, History Rewriting
- Phase 5 — Remote Collaboration
- Phase 6 — History Exploration ও Forensics
- Phase 7 — Tagging, Releases, Stashing
- Phase 8 — Advanced Workspace Tools
- Phase 9 — Customization, Hooks, Automation
- Phase 10 — Security ও Repository Hygiene
- Phase 11 — GitHub-নির্দিষ্ট ওয়ার্কফ্লো
- Phase 12 — ট্রাবলশুটিং প্লেবুক ও ক্যাপস্টোন
- গেট/চেকপয়েন্ট তালিকা
- Appendix A — কমান্ড চিটশিট
- Appendix B — রিসোর্স লিস্ট
- Appendix C — এই কারিকুলাম কী কভার করে না
- Appendix D — প্রোগ্রেস ট্র্যাকার
Phase 0 — ওরিয়েন্টেশন
Git আসলে কী (আর কী না), তিনটা এলাকা (working directory/index/repo), আর কনফিগারেশনের চারটা লেভেল।
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 1. ইতিহাস ও মেন্টাল মডেল | VCS-এর ইতিহাস, Git vs GitHub, তিনটা এলাকা, snapshot মডেল | git init, git config |
8 |
| 2. Configuration Levels | system/global/local/worktree precedence, includeIf |
git config --list --show-origin, core.editor, init.defaultBranch |
8 |
Phase 1 — Local Workflow বেসিকস
সলো ডেভেলপমেন্টের দৈনন্দিন লুপ — repo বানানো থেকে কমিট করা পর্যন্ত।
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 3. Repo তৈরি ও ক্লোন | init/clone, shallow clone প্রিভিউ | git init, git clone --depth |
7 |
| 4. Staging | status/add/diff/restore/rm/mv | git add -p, git restore --staged |
9 |
| 5. Commit | commit message নিয়ম, amend, fixup | git commit --amend, -v |
9 |
Phase 2 — Git Internals: Object Model
পুরো জার্নির ভিত্তি — এই Phase স্কিপ করলে পরের সব কিছুর ব্যাখ্যা ভাসা-ভাসা লাগবে।
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 6. Blob/Tree/Commit | content-addressable storage, তিনটা অবজেক্ট টাইপ | git hash-object, git cat-file |
9 |
| 7. Refs, HEAD, Index 🔑 | refs আসলে কী, HEAD, .git/index, প্লাম্বিং দিয়ে হাতে কমিট বানানো | git update-ref, git write-tree, git commit-tree |
10 |
| 8. Packfiles & Maintenance | loose vs packed objects, gc, fsck | git gc, git repack, git fsck --lost-found |
8 |
Phase 3 — Branching ও Ref Model গভীরে
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 9. Branch CRUD | branch লাইফসাইকেল, switch vs checkout | git switch -c, git branch -d/-D |
7 |
| 10. Detached HEAD & Orphan | detached HEAD কীভাবে ঘটে ও রিকভারি | git switch --detach, --orphan |
8 |
Phase 4 — Merging, Rebasing, History Rewriting
সবচেয়ে ঘন Phase — merge/rebase/reset/cherry-pick/reflog, প্রতিটাই “undo মাস্টারি”-র অংশ।
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 11. Merge Fundamentals | fast-forward vs 3-way | git merge --no-ff/--ff-only |
7 |
| 12. Conflict Resolution Deep-Dive | conflict markers, ours/theirs, rerere | git merge --abort, git rerere |
9 |
| 13. Reset & Undo Model | soft/mixed/hard, reset vs revert | git reset --hard, git revert -m |
8 |
| 14. Interactive Rebase | replay মডেল, pick/squash/fixup | git rebase -i, --onto, --autosquash |
9 |
| 15. Cherry-pick | সিঙ্গেল/রেঞ্জ, hotfix backport | git cherry-pick -x |
8 |
| 16. Reflog সেফটি নেট 🔑 | HEAD@{n}, হারানো কমিট রিকভারি | git reflog, git fsck |
10 |
Phase 5 — Remote Collaboration
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 17. Remotes | origin/upstream কনভেনশন | git remote add/set-url |
7 |
| 18. Fetch/Pull/Push | force vs force-with-lease, non-fast-forward | git push --force-with-lease |
9 |
| 19. টিম ওয়ার্কফ্লো প্যাটার্ন | feature-branch, Gitflow, trunk-based | — | 8 |
Phase 6 — History Exploration ও Forensics
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 20. log গভীরে | pickaxe, graph, grep, format | git log -S, -G, --graph |
9 |
| 21. show/diff/blame | two-dot vs three-dot, blame ignore-rev | git blame -w --ignore-rev |
9 |
| 22. bisect | বাইনারি সার্চ দিয়ে bug খোঁজা | git bisect run |
7 |
Phase 7 — Tagging, Releases, Stashing
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 23. Tags | lightweight vs annotated vs signed | git tag -a, --follow-tags |
9 |
| 24. Stash | partial stash, stash branch | git stash push -p, stash branch |
8 |
Phase 8 — Advanced Workspace Tools
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 25. Worktree | একাধিক working directory, শেয়ার্ড object DB | git worktree add |
7 |
| 26. Submodules & Subtrees | .gitmodules, subtree বিকল্প | git submodule update --init |
8 |
| 27. বড় Repo / Monorepo 🔑 | partial clone, sparse-checkout, LFS | git sparse-checkout set, git lfs track |
9 |
Phase 9 — Customization, Hooks, Automation
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 28. Aliases & Config | shell alias vs pure git alias | git config --global alias. |
6 |
| 29. gitignore/gitattributes | eol normalization, export-ignore | git check-ignore -v |
8 |
| 30. Hooks | client/server-side hooks, core.hooksPath | pre-commit, pre-push |
7 |
Phase 10 — Security ও Repository Hygiene
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 31. Signing | GPG/SSH commit ও tag signing | git commit -S, git verify-commit |
8 |
| 32. Credentials | PAT vs SSH key, credential helpers | git credential fill |
8 |
| 33. সিক্রেট রিমুভাল 🔑 | leaked secret purge, রোটেশন | git filter-repo |
11 |
Phase 11 — GitHub-নির্দিষ্ট ওয়ার্কফ্লো
এই পুরো Phase-এ বারবার জোর দেওয়া হয়েছে: এগুলো GitHub প্ল্যাটফর্মের ফিচার, core Git-এর অংশ না।
| Module | কী কভার হয় | গুরুত্বপূর্ণ কমান্ড | লিফ |
|---|---|---|---|
| 34. Fork ও Upstream Sync | fork sync প্যাটার্ন | git remote add upstream |
7 |
| 35. Pull Request | merge/squash/rebase-merge তুলনা | gh pr create |
8 |
| 36. Branch Protection ও গভর্নেন্স | CODEOWNERS, required checks | — | 7 |
| 37. GitHub Actions বেসিক 🔑 | workflow YAML, triggers, secrets | .github/workflows/*.yml |
8 |
Phase 12 — ট্রাবলশুটিং প্লেবুক ও ক্যাপস্টোন
জার্নির সমাপ্তি — বাস্তব ইমার্জেন্সি সিনারিও আর একটা চূড়ান্ত ক্যাপস্টোন।
| Module | কী কভার হয় | লিফ |
|---|---|---|
| 38. ইমার্জেন্সি সিনারিও ওয়াকথ্রু | ৭টা রিয়েল-ওয়ার্ল্ড ক্রাইসিস (ভুল branch, force-push রিকভারি, corrupt repo, diverged branch…) | 10 |
| 39. Merge vs Rebase Framework ও ক্যাপস্টোন 🔑 | ডিসিশন গাইড, কমান্ড চিটশিট, চূড়ান্ত ক্যাপস্টোন সিমুলেশন | 4 |
গেট/চেকপয়েন্ট তালিকা
জার্নিতে মোট ৬টা 🔑 gate checkpoint আছে — প্রতিটা একটা মেজর মাইলস্টোন শেষে:
- Module 7 শেষে (Phase 2) — Object model/refs/index সত্যিই বোঝা হয়েছে কিনা যাচাই।
- Module 16 শেষে (Phase 4) — “Undo মাস্টারি” — reflog দিয়ে যেকোনো ভুল থেকে রিকভার করার আত্মবিশ্বাস।
- Module 27 শেষে (Phase 8) — বড় repo/monorepo টুলিং-এ স্বচ্ছন্দ কিনা।
- Module 33 শেষে (Phase 10) — সিকিউরিটি হাইজিন অভ্যাসে পরিণত হয়েছে কিনা।
- Module 37 শেষে (Phase 11) — GitHub টিম-ওয়ার্কফ্লো (fork/PR/protection/Actions) মিলিয়ে।
- Module 39 — চূড়ান্ত ক্যাপস্টোন (Phase 12) — একটা সিমুলেটেড ক্রাইসিস-উইক রিপোতে conflict + rebase + reflog + secret removal + governed PR merge সব একসাথে।
Appendix A — সম্পূর্ণ কমান্ড চিটশিট
জার্নির প্রতিটা কমান্ড বিস্তারিতভাবে নিজের leaf-এ কভার করা আছে; এখানে শুধু ক্যাটাগরি-বাই-ক্যাটাগরি একটা কম্প্যাক্ট ইনডেক্স:
| ক্যাটাগরি | প্রতিনিধিত্বমূলক কমান্ড | কোথায় বিস্তারিত |
|---|---|---|
| সেটআপ ও কনফিগ | init, clone, config, includeIf |
Phase 0 |
| স্টেজিং ও কমিট | add -p, status -s, restore, commit --amend |
Phase 1 |
| প্লাম্বিং / অবজেক্ট মডেল | hash-object, cat-file, write-tree, commit-tree, update-ref |
Phase 2 |
| ব্রাঞ্চিং | branch, switch -c, switch --detach/--orphan |
Phase 3 |
| মার্জ/রিবেস/আন্ডু | merge --no-ff, rebase -i, reset --soft/--mixed/--hard, revert, cherry-pick, reflog |
Phase 4 |
| রিমোট | remote, fetch -p, pull --rebase, push --force-with-lease |
Phase 5 |
| হিস্ট্রি/ফরেনসিক্স | log -S/-G/--graph, show, blame -w, bisect run |
Phase 6 |
| ট্যাগ ও স্ট্যাশ | tag -a -s, stash push -p, stash branch |
Phase 7 |
| ওয়ার্কস্পেস টুলস | worktree add, submodule update, sparse-checkout set, lfs track |
Phase 8 |
| কাস্টমাইজেশন | alias, check-ignore -v, hooks (pre-commit, pre-push) |
Phase 9 |
| সিকিউরিটি | commit -S, verify-commit, credential fill, filter-repo |
Phase 10 |
| GitHub ওয়ার্কফ্লো | gh pr create, branch protection, GitHub Actions YAML |
Phase 11 |
| ইমার্জেন্সি প্লেবুক | wrong-branch fix, force-push রিকভারি, fsck+repack |
Phase 12 |
সম্পূর্ণ, ব্যাখ্যাসহ ৩০-৪০টা কমান্ডের এক্সটেন্ডেড রেফারেন্স টেবিল Module 39-এর প্রথম leaf-এই আছে।
Appendix B — রিসোর্স লিস্ট
- Pro Git বই (git-scm.com/book) — ফ্রি, অফিসিয়াল, সবচেয়ে নির্ভরযোগ্য গভীর রেফারেন্স।
- git-scm.com/docs — প্রতিটা কমান্ডের অফিসিয়াল man page, ফ্ল্যাগ-বাই-ফ্ল্যাগ।
- GitHub Docs (docs.github.com) — fork/PR/Actions/branch-protection-এর মতো প্ল্যাটফর্ম-স্পেসিফিক ফিচারের জন্য।
- git-filter-repo ডকুমেন্টেশন — সিক্রেট রিমুভাল/হিস্ট্রি রিরাইটের জন্য অফিসিয়াল রিপ্লেসমেন্ট টুল হিসেবে
filter-branch-এর বদলে।
Appendix C — এই কারিকুলাম কী কভার করে না
- GUI Git ক্লায়েন্ট (SourceTree, GitKraken, Git-এর নিজস্ব
gitk/git gui)-এর স্ক্রিনশট-বেসড ওয়াকথ্রু — এই জার্নি কমান্ড-লাইন-কেন্দ্রিক। - GitLab/Bitbucket-স্পেসিফিক ফিচার (এগুলোর merge request/pipeline সিস্টেম GitHub-এর থেকে আলাদা, যদিও কনসেপ্টগুলো মিল আছে)।
- Bazel/Pants-এর মতো ডেডিকেটেড মনোরেপো বিল্ড টুলিং — Phase 8-এ শুধু Git-নেটিভ মনোরেপো টুল (sparse-checkout, partial clone) কভার করা হয়েছে।
- অ্যাডভান্সড CI/CD পাইপলাইন ডিজাইন (multi-stage deployment, canary release ইত্যাদি) — Phase 11-এ শুধু GitHub Actions-এর বেসিক পরিচিতি আছে।
Appendix D — প্রোগ্রেস ট্র্যাকার
- Phase 0 — ওরিয়েন্টেশন
- Phase 1 — Local Workflow বেসিকস
- Phase 2 — Git Internals: Object Model 🔑
- Phase 3 — Branching ও Ref Model গভীরে
- Phase 4 — Merging, Rebasing, History Rewriting 🔑
- Phase 5 — Remote Collaboration
- Phase 6 — History Exploration ও Forensics
- Phase 7 — Tagging, Releases, Stashing
- Phase 8 — Advanced Workspace Tools 🔑
- Phase 9 — Customization, Hooks, Automation
- Phase 10 — Security ও Repository Hygiene 🔑
- Phase 11 — GitHub-নির্দিষ্ট ওয়ার্কফ্লো 🔑
- Phase 12 — ট্রাবলশুটিং প্লেবুক ও ক্যাপস্টোন (চূড়ান্ত 🔑)
পুরো জার্নি পড়ুন এখানে: Git মাস্টারি জার্নি