🛠️

गिट का परिचय और बेसिक्स

Jul 4, 2025

Overview

यह लेक्चर Git टूल में status, log commands, branching, merging, conflict resolution, branch deletion और stashing की बेसिक से एडवांस समझ पर केंद्रित है।

Git Status और Log

  • Git स्टेटस (git status -s) से फाइल्स के वर्तमान स्टेजेस (untracked, added, modified, committed) पता चलते हैं।
  • git log कमांड से सारे commits (saved points) की लिस्ट और उनके संदेश देख सकते हैं।
  • git log --oneline से संक्षिप्त रूप से commits देख सकते हैं।

Git में फाइल्स की स्टेजेस

  • नई फाइल गिट को unknown (untracked) रहती है।
  • Stage/Add करने से फाइल staged होती है (A)।
  • फाइल में बदलाव करने पर वह modified (M) दिखती है।
  • Commit करने पर गिट उसमें नए checkpoint बना लेता है।

Branching

  • ब्रांचिंग में main से अलग copy (ब्रांच) बनाकर उसपर नया काम किया जाता है।
  • feature/feature-name नाम देकर ब्रांच meaningful बनाते हैं।
  • ब्रांच पर किया गया commit main से अलग रहता है जब तक merge नहीं किया जाए।

Merging & Merge Conflicts

  • Merge करने पर दूसरी ब्रांच के changes main में जोड़े जाते हैं।
  • अगर दोनों ब्रांच में एक ही जगह अलग-अलग बदलाव हों तो conflict आता है।
  • Conflict में 3 विकल्प: current change, incoming change, या दोनों को accept करना।
  • Merge के बाद changes को दुबारा add और commit करना जरूरी है।

Merge Techniques

  • Three Way Merge — जब दोनों ब्रांचें अलग-अलग आगे बढ़ती हैं तो merging के लिए नया commit बनता है।
  • Fast Forward Merge — जब side branch में ही changes हों तो head pointer बस आगे move हो जाता है, नया commit नहीं बनता।

Branch Delete एवं Stashing

  • Merge के बाद अनावश्यक ब्रांच git branch -d branch-name से हटाई जाती है।
  • Stashing में बिना commit किए गए changes को अस्थाई रूप से सेव कर सकते हैं (git stash)।
  • git stash apply से वह changes वापस आते हैं; git stash clear से सब स्टैश हट जाते हैं।

Key Terms & Definitions

  • Untracked Files — गिट द्वारा न पहचानी गई नई फाइल्स।
  • Staging — फाइल को commit के लिए तैयार करना।
  • Commit — फाइल्स के एक set की सेविंग (checkpoint)।
  • Branch — मेन कोडबेस से अलग काम करने की copy।
  • Merge — ब्रांच को मुख्य ब्रांच में मिलाना।
  • Merge Conflict — एक ही लाइन में अलग-अलग changes होने पर विवाद।
  • Stash — बिना commit किए changes को अस्थाई रूप से सेव करना।

Action Items / Next Steps

  • Git में branching, merging और stashing की प्रैक्टिकल प्रैक्टिस करें।
  • अगले सेशन में branching और merge conflicts के रियल केस पर ध्यान दें।
  • वीडियो और लिखी हुई थीओरी को एक बार pause करके पढ़ें और खुद भी आज़माएँ।