<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jeyaul Hoque</title>
    <description>The latest articles on DEV Community by Jeyaul Hoque (@jeyaul_hoque).</description>
    <link>https://dev.to/jeyaul_hoque</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3711986%2F160cc8f7-49d8-4770-8a38-2cca7dfb4e95.jpg</url>
      <title>DEV Community: Jeyaul Hoque</title>
      <link>https://dev.to/jeyaul_hoque</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jeyaul_hoque"/>
    <language>en</language>
    <item>
      <title>Git: ডেভেলপার ও শিক্ষার্থীদের জন্য একটি পূর্ণাঙ্গ গাইড</title>
      <dc:creator>Jeyaul Hoque</dc:creator>
      <pubDate>Mon, 10 Aug 2026 07:29:09 +0000</pubDate>
      <link>https://dev.to/jeyaul_hoque/git-ddebhelpaar-o-shikssaarthiider-jny-ektti-puurnnaangg-gaaidd-5b1a</link>
      <guid>https://dev.to/jeyaul_hoque/git-ddebhelpaar-o-shikssaarthiider-jny-ektti-puurnnaangg-gaaidd-5b1a</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Git: ডেভেলপারদের জন্য Version Control-এর সম্পূর্ণ গাইড
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Code লিখা যতটা গুরুত্বপূর্ণ, সেই code-এর পরিবর্তনগুলো সঠিকভাবে manage করাও ততটাই গুরুত্বপূর্ণ।"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;আপনি যদি Web Development, Software Development অথবা Programming শেখেন, তাহলে খুব দ্রুতই &lt;strong&gt;Git&lt;/strong&gt; নামটির সঙ্গে পরিচিত হবেন।&lt;/p&gt;

&lt;p&gt;শুরুতে Git-এর commandগুলো একটু কঠিন মনে হতে পারে। &lt;code&gt;git add&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt;, &lt;code&gt;git push&lt;/code&gt;, &lt;code&gt;git pull&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;merge&lt;/code&gt;—সবকিছু একসাথে দেখলে মাথা ঘুরে যেতে পারে! 😅&lt;/p&gt;

&lt;p&gt;কিন্তু চিন্তার কিছু নেই।&lt;/p&gt;

&lt;p&gt;এই লেখায় আমরা &lt;strong&gt;একদম শুরু থেকে Git-এর গুরুত্বপূর্ণ বিষয়গুলো সহজ ভাষায়&lt;/strong&gt; বুঝব এবং শেষে একটি practical workflow তৈরি করব।&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 এই লেখায় কী শিখবেন?
&lt;/h2&gt;

&lt;p&gt;এই ব্লগটি পড়ার পর আপনি জানতে পারবেন:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git কী এবং কেন ব্যবহার করা হয়&lt;/li&gt;
&lt;li&gt;Git এবং GitHub-এর মধ্যে পার্থক্য&lt;/li&gt;
&lt;li&gt;Repository কী&lt;/li&gt;
&lt;li&gt;Working Directory কী&lt;/li&gt;
&lt;li&gt;Staging Area কী&lt;/li&gt;
&lt;li&gt;Commit কী&lt;/li&gt;
&lt;li&gt;Branch কী&lt;/li&gt;
&lt;li&gt;HEAD কী&lt;/li&gt;
&lt;li&gt;Merge কী&lt;/li&gt;
&lt;li&gt;Remote Repository কী&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;push&lt;/code&gt; এবং &lt;code&gt;pull&lt;/code&gt; কীভাবে কাজ করে&lt;/li&gt;
&lt;li&gt;Merge Conflict কী এবং কীভাবে সমাধান করতে হয়&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;reset&lt;/code&gt;, &lt;code&gt;revert&lt;/code&gt;, &lt;code&gt;rebase&lt;/code&gt;, &lt;code&gt;cherry-pick&lt;/code&gt; কী&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.gitignore&lt;/code&gt; কী&lt;/li&gt;
&lt;li&gt;Git-এর সাধারণ workflow&lt;/li&gt;
&lt;li&gt;গুরুত্বপূর্ণ Git commands&lt;/li&gt;
&lt;li&gt;Git-এর ভালো practice&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🧠 Git কী?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Git হলো একটি Distributed Version Control System (DVCS)।&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;সহজ ভাষায় বললে—&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Git আপনার project-এর পরিবর্তনের history সংরক্ষণ করে।&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ধরুন আপনি একটি website তৈরি করছেন।&lt;/p&gt;

&lt;p&gt;আজ আপনার project এমন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html
style.css
script.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আগামীকাল আপনি অনেক পরিবর্তন করলেন।&lt;/p&gt;

&lt;p&gt;তারপর ভুল করে পুরো website নষ্ট হয়ে গেল! 😱&lt;/p&gt;

&lt;p&gt;এখন যদি Git ব্যবহার করেন, তাহলে আগের কোনো একটি &lt;strong&gt;commit&lt;/strong&gt;-এ ফিরে গিয়ে project-এর পুরোনো অবস্থাটি দেখতে বা পুনরুদ্ধার করতে পারবেন।&lt;/p&gt;

&lt;p&gt;অর্থাৎ Git অনেকটা আপনার project-এর &lt;strong&gt;time machine&lt;/strong&gt;-এর মতো। ⏰&lt;/p&gt;




&lt;h1&gt;
  
  
  🕰️ Git-এর সংক্ষিপ্ত ইতিহাস
&lt;/h1&gt;

&lt;p&gt;Git তৈরি করা হয় &lt;strong&gt;২০০৫ সালে&lt;/strong&gt;, Linux Kernel-এর development-এর প্রয়োজন থেকে।&lt;/p&gt;

&lt;p&gt;Git-এর প্রধান লক্ষ্য ছিল:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ দ্রুত কাজ করা&lt;/li&gt;
&lt;li&gt;📦 বড় project handle করা&lt;/li&gt;
&lt;li&gt;🔀 শক্তিশালী branching ও merging&lt;/li&gt;
&lt;li&gt;🌐 Distributed ভাবে কাজ করা&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;বর্তমানে Git software development-এর অন্যতম গুরুত্বপূর্ণ tool।&lt;/p&gt;




&lt;h1&gt;
  
  
  🤔 Git কেন ব্যবহার করব?
&lt;/h1&gt;

&lt;p&gt;একজন developer হিসেবে Git আপনার অনেক সমস্যা সহজ করে দেয়।&lt;/p&gt;

&lt;h3&gt;
  
  
  Git ব্যবহার করার প্রধান কারণ:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Code-এর পরিবর্তন track করা যায়&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;আগের version দেখা যায়&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;পুরোনো অবস্থায় ফিরে যাওয়া যায়&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;একাধিক developer একসাথে কাজ করতে পারে&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;আলাদা feature-এর জন্য branch তৈরি করা যায়&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code merge করা যায়&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project-এর history সংরক্ষণ করা যায়&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remote repository-তে code রাখা যায়&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  Git বনাম GitHub — একই জিনিস নয়! ⚠️
&lt;/h1&gt;

&lt;p&gt;অনেক beginner এখানে ভুল করেন।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git এবং GitHub এক জিনিস নয়।&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Git
&lt;/h3&gt;

&lt;p&gt;Git হলো একটি &lt;strong&gt;Version Control System&lt;/strong&gt;।&lt;/p&gt;

&lt;p&gt;এটি আপনার computer-এ install করে ব্যবহার করা যায়।&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub
&lt;/h3&gt;

&lt;p&gt;GitHub হলো একটি &lt;strong&gt;online platform&lt;/strong&gt;, যেখানে Git repository host করা যায়।&lt;/p&gt;

&lt;p&gt;সহজভাবে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Git
 ↓
Version Control System

GitHub
 ↓
Git Repository Hosting Platform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আরও সহজভাবে বললে:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Git হলো tool, আর GitHub হলো Git repository রাখার একটি online জায়গা।&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Git-এর পাশাপাশি GitHub, GitLab এবং Bitbucket-এর মতো platform-ও ব্যবহার করা যায়।&lt;/p&gt;




&lt;h1&gt;
  
  
  📁 Repository কী?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Repository বা Repo&lt;/strong&gt; হলো এমন একটি জায়গা যেখানে আপনার project এবং তার Git history সংরক্ষিত থাকে।&lt;/p&gt;

&lt;p&gt;যখন আপনি একটি project-এ Git initialize করেন, তখন সেখানে একটি &lt;code&gt;.git&lt;/code&gt; directory তৈরি হয়।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;my-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-project
git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Initialized empty Git repository in /path/to/my-project/.git/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এখন &lt;code&gt;my-project&lt;/code&gt; একটি Git repository।&lt;/p&gt;




&lt;h1&gt;
  
  
  🔄 Git কীভাবে কাজ করে?
&lt;/h1&gt;

&lt;p&gt;Git-এর সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলোর একটি হলো এর তিনটি প্রধান state:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Working Directory
       ↓
Staging Area
       ↓
Repository
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এগুলো বুঝতে পারলে Git অনেক সহজ হয়ে যাবে।&lt;/p&gt;




&lt;h2&gt;
  
  
  1️⃣ Working Directory
&lt;/h2&gt;

&lt;p&gt;আপনি যখন project-এর file edit করেন, তখন পরিবর্তনটি প্রথমে &lt;strong&gt;Working Directory&lt;/strong&gt;-তে থাকে।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;index.html
style.css
script.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আপনি &lt;code&gt;style.css&lt;/code&gt; পরিবর্তন করলেন।&lt;/p&gt;

&lt;p&gt;এখন Git সেই পরিবর্তন detect করতে পারবে।&lt;/p&gt;




&lt;h2&gt;
  
  
  2️⃣ Staging Area
&lt;/h2&gt;

&lt;p&gt;আপনি যখন বলেন—&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"এই পরিবর্তনটি আমি পরবর্তী commit-এ রাখতে চাই।"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;তখন &lt;code&gt;git add&lt;/code&gt; ব্যবহার করেন।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add style.css
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এখন পরিবর্তনটি &lt;strong&gt;Staging Area&lt;/strong&gt;-তে চলে যাবে।&lt;/p&gt;




&lt;h2&gt;
  
  
  3️⃣ Repository
&lt;/h2&gt;

&lt;p&gt;এরপর &lt;code&gt;git commit&lt;/code&gt; করলে staging করা পরিবর্তন Git history-তে সংরক্ষিত হয়।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Update website styling"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;তাহলে পুরো flow হলো:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Edit File
   ↓
Working Directory
   ↓
git add
   ↓
Staging Area
   ↓
git commit
   ↓
Repository
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এটি Git শেখার জন্য সবচেয়ে গুরুত্বপূর্ণ flow-গুলোর একটি। 🔥&lt;/p&gt;




&lt;h1&gt;
  
  
  📸 Commit কী?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Commit হলো project-এর একটি নির্দিষ্ট অবস্থার snapshot।&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;প্রতিটি commit-এর সঙ্গে একটি message থাকে।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add homepage design"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এখানে:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git add .&lt;/code&gt; → পরিবর্তনগুলো staging-এ নেয়&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git commit&lt;/code&gt; → পরিবর্তন সংরক্ষণ করে&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-m&lt;/code&gt; → commit message&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;"Add homepage design"&lt;/code&gt; → কী পরিবর্তন হয়েছে তার বর্ণনা&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ভালো Commit Message কেমন হওয়া উচিত?
&lt;/h3&gt;

&lt;p&gt;❌ খারাপ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;❌ আরও খারাপ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;changes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ ভালো:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add responsive navigation menu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;অথবা:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fix login form validation bug
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Commit message এমন হওয়া উচিত যাতে পরে history দেখলে আপনি বুঝতে পারেন কী পরিবর্তন করেছিলেন।&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🌿 Branch কী?
&lt;/h1&gt;

&lt;p&gt;Git-এর সবচেয়ে শক্তিশালী feature-এর একটি হলো &lt;strong&gt;Branch&lt;/strong&gt;।&lt;/p&gt;

&lt;p&gt;ধরুন আপনার main project চলছে ঠিকঠাক।&lt;/p&gt;

&lt;p&gt;এখন আপনি নতুন একটি Login System তৈরি করতে চান।&lt;/p&gt;

&lt;p&gt;আপনি সরাসরি &lt;code&gt;main&lt;/code&gt; branch-এ কাজ না করে একটি নতুন branch তৈরি করতে পারেন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch feature/login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;তারপর branch-এ যেতে পারেন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout feature/login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এখন আপনি &lt;code&gt;feature/login&lt;/code&gt; branch-এ কাজ করছেন।&lt;/p&gt;




&lt;h2&gt;
  
  
  Branch কেন ব্যবহার করব?
&lt;/h2&gt;

&lt;p&gt;Branch ব্যবহার করলে:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;নতুন feature আলাদাভাবে তৈরি করা যায়&lt;/li&gt;
&lt;li&gt;Main code নিরাপদ থাকে&lt;/li&gt;
&lt;li&gt;একাধিক developer একসাথে কাজ করতে পারে&lt;/li&gt;
&lt;li&gt;Feature test করা যায়&lt;/li&gt;
&lt;li&gt;কাজ শেষ হলে main branch-এ merge করা যায়&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;একটি সাধারণ structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main
 │
 ├── feature/login
 │
 ├── feature/payment
 │
 └── feature/profile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  👀 HEAD কী?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;HEAD&lt;/strong&gt; হলো Git-এর একটি গুরুত্বপূর্ণ reference।&lt;/p&gt;

&lt;p&gt;সহজ ভাষায়:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;HEAD সাধারণত আপনি বর্তমানে কোন branch/commit-এ অবস্থান করছেন সেটিকে নির্দেশ করে।&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main
  ↓
Commit A
  ↓
Commit B
  ↓
Commit C
       ↑
      HEAD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আপনি যখন branch পরিবর্তন করেন, HEAD-ও সেই branch-এর দিকে চলে যায়।&lt;/p&gt;




&lt;h1&gt;
  
  
  🔀 Merge কী?
&lt;/h1&gt;

&lt;p&gt;ধরুন আপনি &lt;code&gt;feature/login&lt;/code&gt; branch-এ Login System তৈরি করলেন।&lt;/p&gt;

&lt;p&gt;এখন সেই কাজটি &lt;code&gt;main&lt;/code&gt; branch-এ আনতে হবে।&lt;/p&gt;

&lt;p&gt;প্রথমে main branch-এ যান:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;তারপর merge করুন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git merge feature/login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এখন &lt;code&gt;feature/login&lt;/code&gt;-এর পরিবর্তন &lt;code&gt;main&lt;/code&gt; branch-এ চলে আসবে।&lt;/p&gt;

&lt;p&gt;সহজভাবে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main
  \
   feature/login
        |
        | কাজ শেষ
        ↓
      merge
        ↓
      main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  ⚠️ Merge Conflict কী?
&lt;/h1&gt;

&lt;p&gt;কখনো কখনো Git নিজে থেকে দুই branch-এর পরিবর্তন merge করতে পারে না।&lt;/p&gt;

&lt;p&gt;যেমন দুই developer একই জায়গায় একই file পরিবর্তন করেছে।&lt;/p&gt;

&lt;p&gt;তখন Git বলতে পারে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CONFLICT (content): Merge conflict in hello.py
Automatic merge failed; fix conflicts and then commit the result.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এটি হলো &lt;strong&gt;Merge Conflict&lt;/strong&gt;।&lt;/p&gt;

&lt;h3&gt;
  
  
  কী করবেন?
&lt;/h3&gt;

&lt;p&gt;প্রথমে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;তারপর conflicted file খুলে সমস্যার জায়গাটি ঠিক করতে হবে।&lt;/p&gt;

&lt;p&gt;Git সাধারণত এমন marker দেখাতে পারে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD
Your changes
=======
Other branch changes
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; feature/login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আপনাকে প্রয়োজনীয় code রেখে conflict markers সরিয়ে দিতে হবে।&lt;/p&gt;

&lt;p&gt;তারপর:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add hello.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এবং:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Resolve merge conflict"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  ☁️ Remote Repository কী?
&lt;/h1&gt;

&lt;p&gt;আপনার computer-এর repository হলো &lt;strong&gt;local repository&lt;/strong&gt;।&lt;/p&gt;

&lt;p&gt;আর GitHub/GitLab-এর মতো platform-এ থাকা repository হলো &lt;strong&gt;remote repository&lt;/strong&gt;।&lt;/p&gt;

&lt;p&gt;সাধারণত remote-এর নাম:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;origin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;তাই আপনি দেখতে পারেন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Local Repository
       ↓
     origin
       ↓
Remote Repository
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  📤 Git Push কী?
&lt;/h1&gt;

&lt;p&gt;আপনার local commit remote repository-তে পাঠাতে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;অর্থাৎ:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Local → Remote&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  📥 Git Pull কী?
&lt;/h1&gt;

&lt;p&gt;Remote repository-তে অন্য কেউ পরিবর্তন করেছে।&lt;/p&gt;

&lt;p&gt;সেই পরিবর্তন আপনার local repository-তে আনতে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;অর্থাৎ:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Remote → Local&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🔁 Push এবং Pull এক নজরে
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your Computer                 GitHub
     │                          │
     │ ─────── git push ─────→ │
     │                          │
     │ ←────── git pull ────── │
     │                          │
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  📥 Existing Project Clone করা
&lt;/h1&gt;

&lt;p&gt;যদি কোনো remote repository আপনার computer-এ আনতে চান, তাহলে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;repository-url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/example/project.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এতে repository-এর history সহ project আপনার computer-এ চলে আসবে।&lt;/p&gt;




&lt;h1&gt;
  
  
  🏷️ Tag কী?
&lt;/h1&gt;

&lt;p&gt;কোনো নির্দিষ্ট commit-কে বিশেষভাবে চিহ্নিত করতে &lt;strong&gt;Tag&lt;/strong&gt; ব্যবহার করা হয়।&lt;/p&gt;

&lt;p&gt;বিশেষ করে release-এর ক্ষেত্রে এটি খুব কাজে লাগে।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git tag &lt;span class="nt"&gt;-a&lt;/span&gt; v1.0 &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"First release"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;তারপর:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin v1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এখন &lt;code&gt;v1.0&lt;/code&gt; একটি release point হিসেবে চিহ্নিত থাকবে।&lt;/p&gt;




&lt;h1&gt;
  
  
  🛠️ সবচেয়ে গুরুত্বপূর্ণ Git Commands
&lt;/h1&gt;

&lt;p&gt;নিচের commands-গুলো একজন beginner-এর অবশ্যই জানা উচিত।&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;কাজ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;নতুন repository তৈরি&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git clone &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remote repository clone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;বর্তমান অবস্থা দেখা&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git add &amp;lt;file&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;File staging করা&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git commit -m "message"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Commit তৈরি&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Commit history দেখা&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Branch দেখা/তৈরি&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git checkout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Branch পরিবর্তন&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git merge&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Branch merge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remote থেকে পরিবর্তন আনা&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remote-এ পরিবর্তন পাঠানো&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git reset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Commit/changes পিছিয়ে নেওয়া&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git revert&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;আগের পরিবর্তন নতুন commit দিয়ে undo করা&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git rebase&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Commit history পুনর্বিন্যাস&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git cherry-pick&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;নির্দিষ্ট commit অন্য branch-এ নেওয়া&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git tag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;নির্দিষ্ট commit চিহ্নিত করা&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  🚀 একটি বাস্তব Git Workflow
&lt;/h1&gt;

&lt;p&gt;এবার ধরে নিই আপনি একটি নতুন website তৈরি করছেন।&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Project তৈরি
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;my-website
&lt;span class="nb"&gt;cd &lt;/span&gt;my-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2 — Git initialize
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3 — File তৈরি
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4 — Status দেখুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 5 — File Stage করুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 6 — Commit করুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add homepage"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 7 — Feature branch তৈরি করুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch feature/navbar
git checkout feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 8 — Feature তৈরি করুন
&lt;/h3&gt;

&lt;p&gt;আপনার Navbar code লিখুন।&lt;/p&gt;

&lt;p&gt;তারপর:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add responsive navbar"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 9 — Main branch-এ ফিরে যান
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 10 — Feature merge করুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git merge feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 11 — Remote-এ Push করুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🎉 ব্যস!&lt;/p&gt;

&lt;p&gt;এটাই একটি সাধারণ Git workflow।&lt;/p&gt;




&lt;h1&gt;
  
  
  🔄 &lt;code&gt;git revert&lt;/code&gt; বনাম &lt;code&gt;git reset&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;এই দুইটি command beginner-দের অনেক confuse করে।&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;git revert&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;git revert&lt;/code&gt; একটি &lt;strong&gt;নতুন commit তৈরি করে&lt;/strong&gt; আগের commit-এর পরিবর্তন উল্টে দেয়।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git revert &amp;lt;commit&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এটি shared/public history-এর ক্ষেত্রে তুলনামূলকভাবে নিরাপদ।&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;git reset&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;git reset&lt;/code&gt; আপনার HEAD এবং repository state পিছিয়ে নিতে পারে।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; HEAD~1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⚠️ &lt;strong&gt;সতর্কতা:&lt;/strong&gt; &lt;code&gt;--hard&lt;/code&gt; ব্যবহার করলে uncommitted কাজ হারিয়ে যেতে পারে।&lt;/p&gt;

&lt;p&gt;তাই reset ব্যবহার করার আগে ভালোভাবে বুঝে নেওয়া উচিত আপনি কী করছেন।&lt;/p&gt;




&lt;h1&gt;
  
  
  🍒 Git Cherry-pick কী?
&lt;/h1&gt;

&lt;p&gt;ধরুন একটি branch-এ ১০টি commit আছে।&lt;/p&gt;

&lt;p&gt;কিন্তু আপনার দরকার শুধু একটি নির্দিষ্ট commit।&lt;/p&gt;

&lt;p&gt;তখন &lt;code&gt;git cherry-pick&lt;/code&gt; ব্যবহার করতে পারেন।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git cherry-pick &amp;lt;commit-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এতে নির্দিষ্ট commit-এর পরিবর্তন আপনার বর্তমান branch-এ প্রয়োগ হবে।&lt;/p&gt;




&lt;h1&gt;
  
  
  🔃 Git Rebase কী?
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;git rebase&lt;/code&gt; ব্যবহার করে একটি branch-এর commit অন্য branch-এর latest অবস্থানের ওপর পুনর্বিন্যাস করা যায়।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout feature/login
git rebase main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এর ফলে history অনেক সময় আরও &lt;strong&gt;linear এবং clean&lt;/strong&gt; দেখা যায়।&lt;/p&gt;

&lt;p&gt;তবে মনে রাখবেন:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Rebase history পরিবর্তন করে। Shared branch-এ rebase করার আগে সতর্ক হতে হবে।&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  📂 &lt;code&gt;.gitignore&lt;/code&gt; কী?
&lt;/h1&gt;

&lt;p&gt;কিছু file বা folder আমরা Git-এ track করতে চাই না।&lt;/p&gt;

&lt;p&gt;যেমন:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;node_modules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Python cache&lt;/li&gt;
&lt;li&gt;IDE settings&lt;/li&gt;
&lt;li&gt;Operating system files&lt;/li&gt;
&lt;li&gt;Build files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;এসব ignore করতে &lt;code&gt;.gitignore&lt;/code&gt; file ব্যবহার করা হয়।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Operating system
.DS_Store
Thumbs.db

# Python
__pycache__/
*.py[cod]

# Node
node_modules/

# VS Code
.vscode/

# IntelliJ
*.iml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এতে Git এই file/folder-গুলো track করবে না।&lt;/p&gt;




&lt;h1&gt;
  
  
  💡 Git-এর কিছু ভালো অভ্যাস
&lt;/h1&gt;

&lt;p&gt;Git শেখার পাশাপাশি ভালো habit তৈরি করাও গুরুত্বপূর্ণ।&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 1. ছোট ছোট Commit করুন
&lt;/h3&gt;

&lt;p&gt;একটি commit-এ অপ্রয়োজনীয় অনেক পরিবর্তন না রাখাই ভালো।&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 2. ভালো Commit Message লিখুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add login form validation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এর মতো পরিষ্কার message লিখুন।&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 3. Commit করার আগে Status দেখুন
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এতে আপনি বুঝতে পারবেন কোন file পরিবর্তিত হয়েছে।&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 4. Main branch-কে Stable রাখুন
&lt;/h3&gt;

&lt;p&gt;নতুন feature-এর জন্য আলাদা branch ব্যবহার করুন।&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 5. &lt;code&gt;.gitignore&lt;/code&gt; ব্যবহার করুন
&lt;/h3&gt;

&lt;p&gt;অপ্রয়োজনীয় file repository-তে পাঠাবেন না।&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 6. Push করার আগে Pull করুন
&lt;/h3&gt;

&lt;p&gt;Team project হলে অন্যদের পরিবর্তন আগে নিয়ে নেওয়া ভালো।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  ❌ Beginner-রা যে ভুলগুলো বেশি করে
&lt;/h1&gt;

&lt;h3&gt;
  
  
  ভুল ১: সবকিছু একসাথে commit করা
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"everything"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এভাবে না করে logically related পরিবর্তনগুলো আলাদা commit করুন।&lt;/p&gt;




&lt;h3&gt;
  
  
  ভুল ২: Commit message হিসেবে শুধু &lt;code&gt;update&lt;/code&gt; লেখা
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update
changes
final
final2
new
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এ ধরনের message পরে history বুঝতে সমস্যা তৈরি করে।&lt;/p&gt;




&lt;h3&gt;
  
  
  ভুল ৩: &lt;code&gt;git reset --hard&lt;/code&gt; না বুঝে ব্যবহার করা
&lt;/h3&gt;

&lt;p&gt;এই command খুব powerful।&lt;/p&gt;

&lt;p&gt;তাই command ব্যবহার করার আগে নিশ্চিত হন কী হারাতে পারেন।&lt;/p&gt;




&lt;h3&gt;
  
  
  ভুল ৪: Main branch-এ সরাসরি সব কাজ করা
&lt;/h3&gt;

&lt;p&gt;Team project হলে feature branch ব্যবহার করা অনেক বেশি সুবিধাজনক হতে পারে।&lt;/p&gt;




&lt;h1&gt;
  
  
  🌳 Git Workflow-এর কয়েকটি ধরন
&lt;/h1&gt;

&lt;p&gt;Git দিয়ে বিভিন্ন ধরনের workflow ব্যবহার করা যায়।&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Centralized Workflow
&lt;/h3&gt;

&lt;p&gt;সবাই একটি central repository-এর সঙ্গে কাজ করে।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer
   ↓
  Main
   ↑
Developer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ছোট team-এর জন্য সহজ হতে পারে।&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Feature Branch Workflow
&lt;/h3&gt;

&lt;p&gt;প্রতিটি feature-এর জন্য আলাদা branch তৈরি করা হয়।&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main
 ├── feature/login
 ├── feature/payment
 └── feature/profile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এটি team development-এ খুব জনপ্রিয় একটি পদ্ধতি।&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Gitflow
&lt;/h3&gt;

&lt;p&gt;Gitflow-এ &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;develop&lt;/code&gt;, &lt;code&gt;feature&lt;/code&gt;, &lt;code&gt;release&lt;/code&gt;, &lt;code&gt;hotfix&lt;/code&gt; ইত্যাদি branch ব্যবহার করা হয়।&lt;/p&gt;

&lt;p&gt;এটি structured হলেও তুলনামূলকভাবে বেশি complex।&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Forking Workflow
&lt;/h3&gt;

&lt;p&gt;বিশেষ করে open-source project-এ এটি জনপ্রিয়।&lt;/p&gt;

&lt;p&gt;Developer মূল repository-এর একটি fork তৈরি করে নিজের repository-তে কাজ করেন এবং পরে Pull Request-এর মাধ্যমে মূল project-এ পরিবর্তন পাঠান।&lt;/p&gt;




&lt;h1&gt;
  
  
  🖥️ Git কি শুধু Command Line দিয়েই ব্যবহার করতে হয়?
&lt;/h1&gt;

&lt;p&gt;না।&lt;/p&gt;

&lt;p&gt;Git-এর জন্য অনেক GUI tool রয়েছে।&lt;/p&gt;

&lt;p&gt;উদাহরণ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Desktop&lt;/li&gt;
&lt;li&gt;SourceTree&lt;/li&gt;
&lt;li&gt;GitKraken&lt;/li&gt;
&lt;li&gt;TortoiseGit&lt;/li&gt;
&lt;li&gt;Git GUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GUI দিয়ে Git-এর অনেক কাজ visually করা যায়।&lt;/p&gt;

&lt;p&gt;তবে একজন developer হিসেবে &lt;strong&gt;basic Git command line জানা খুবই গুরুত্বপূর্ণ&lt;/strong&gt;।&lt;/p&gt;




&lt;h1&gt;
  
  
  🧩 Git শেখার জন্য আমার Recommended Roadmap
&lt;/h1&gt;

&lt;p&gt;আপনি যদি Git একদম নতুন শিখছেন, তাহলে এই order অনুসরণ করতে পারেন:&lt;/p&gt;

&lt;h3&gt;
  
  
  🟢 Level 1 — Basic
&lt;/h3&gt;

&lt;p&gt;প্রথমে শিখুন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git clone
git status
git add
git commit
git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🟡 Level 2 — Branching
&lt;/h3&gt;

&lt;p&gt;তারপর:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch
git checkout
git merge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🟠 Level 3 — Remote
&lt;/h3&gt;

&lt;p&gt;এরপর:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote
git pull
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔴 Level 4 — Advanced
&lt;/h3&gt;

&lt;p&gt;সবশেষে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset
git revert
git rebase
git cherry-pick
git tag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এভাবে ধাপে ধাপে শিখলে Git অনেক সহজ মনে হবে।&lt;/p&gt;




&lt;h1&gt;
  
  
  📋 Git Cheat Sheet
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Repository তৈরি&lt;/span&gt;
git init

&lt;span class="c"&gt;# Repository clone&lt;/span&gt;
git clone &amp;lt;url&amp;gt;

&lt;span class="c"&gt;# Status দেখা&lt;/span&gt;
git status

&lt;span class="c"&gt;# File stage করা&lt;/span&gt;
git add &amp;lt;file&amp;gt;

&lt;span class="c"&gt;# সব পরিবর্তন stage করা&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Commit&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Your message"&lt;/span&gt;

&lt;span class="c"&gt;# History দেখা&lt;/span&gt;
git log

&lt;span class="c"&gt;# Branch তৈরি&lt;/span&gt;
git branch feature-name

&lt;span class="c"&gt;# Branch পরিবর্তন&lt;/span&gt;
git checkout feature-name

&lt;span class="c"&gt;# Branch merge&lt;/span&gt;
git merge feature-name

&lt;span class="c"&gt;# Remote থেকে update&lt;/span&gt;
git pull

&lt;span class="c"&gt;# Remote-এ push&lt;/span&gt;
git push

&lt;span class="c"&gt;# নির্দিষ্ট commit revert&lt;/span&gt;
git revert &amp;lt;commit&amp;gt;

&lt;span class="c"&gt;# নির্দিষ্ট commit-এ reset&lt;/span&gt;
git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; &amp;lt;commit&amp;gt;

&lt;span class="c"&gt;# Rebase&lt;/span&gt;
git rebase main

&lt;span class="c"&gt;# নির্দিষ্ট commit নেওয়া&lt;/span&gt;
git cherry-pick &amp;lt;commit&amp;gt;

&lt;span class="c"&gt;# Tag তৈরি&lt;/span&gt;
git tag &lt;span class="nt"&gt;-a&lt;/span&gt; v1.0 &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"First release"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🎯 শেষ কথা
&lt;/h1&gt;

&lt;p&gt;শুরুতে Git-এর অনেক command দেখে কঠিন মনে হতে পারে।&lt;/p&gt;

&lt;p&gt;কিন্তু আসলে Git-এর মূল ধারণা কয়েকটি:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Edit → Add → Commit → Branch → Merge → Push → Pull&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;এই flow ভালোভাবে বুঝে গেলে Git-এর foundation তৈরি হয়ে যাবে।&lt;/p&gt;

&lt;p&gt;Git শুধু code backup রাখার tool নয়। এটি একজন developer-কে &lt;strong&gt;organized ভাবে কাজ করতে, team-এর সঙ্গে collaborate করতে এবং project-এর history নিয়ন্ত্রণ করতে&lt;/strong&gt; সাহায্য করে।&lt;/p&gt;

&lt;p&gt;তাই আপনি যদি সত্যিই একজন ভালো Web Developer বা Software Developer হতে চান, তাহলে Git শেখা অবশ্যই আপনার learning journey-এর একটি গুরুত্বপূর্ণ অংশ হওয়া উচিত। 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 আপনার কী অবস্থা?
&lt;/h2&gt;

&lt;p&gt;আপনি কি Git শিখছেন?&lt;/p&gt;

&lt;p&gt;নাকি Git-এর &lt;code&gt;push&lt;/code&gt;, &lt;code&gt;pull&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;, &lt;code&gt;merge&lt;/code&gt; এখনো একটু confusing লাগে?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment করে জানাতে পারেন।&lt;/strong&gt; 👇&lt;/p&gt;

&lt;p&gt;Happy Coding! 💻❤️&lt;/p&gt;




&lt;h3&gt;
  
  
  🏷️ Tags
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;#git&lt;/code&gt; &lt;code&gt;#github&lt;/code&gt; &lt;code&gt;#webdev&lt;/code&gt; &lt;code&gt;#programming&lt;/code&gt; &lt;code&gt;#beginners&lt;/code&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
