Git میں مخزن: یہ کیا ہے، کتنی اقسام ہیں اور کیسے کام کرتے ہیں

مصنف: IT Sectr اشاعت: 2026-05-09 مطالعے کا وقت: 8 منٹ

Git مخزن — پروجیکٹ کے سورس کوڈ کا ذخیرہ ہے جس میں Git ڈویلپمنٹ کے دوران فائلوں کی ہر تبدیلی کو ٹریک کرتا ہے۔ مخزن میں کمٹ، برانچ اور ٹیگ کی مکمل تاریخ ہوتی ہے، جس سے ڈویلپرز کوڈ پر مل کر کام کر سکتے ہیں۔ Git, 2024 کے مطابق، مخزن کسی بھی ورژن کنٹرول سسٹم کی بنیاد ہے اور دنیا بھر کے لاکھوں پروجیکٹس میں استعمال ہوتا ہے۔

اہم نکات

  • Git مخزن — پروجیکٹ ڈائریکٹری ہے جس میں .git سروس فولڈر ہوتا ہے جہاں تبدیلیوں کی پوری تاریخ محفوظ ہوتی ہے۔
  • مقامی مخزن — ڈویلپر کے کمپیوٹر پر واقع ہوتا ہے اور انٹرنیٹ کنکشن کے بغیر کوڈ پر کام کرنے دیتا ہے۔
  • دور دراز مخزن — GitHub، GitLab یا Bitbucket سرور پر میزبانی کی جاتی ہے اور شرکاء کے درمیان مطابقت پذیری کے لیے کام آتی ہے۔
  • Git — ڈیٹا کو تبدیلیوں کی فہرست کے بجائے فائلوں کے سنیپ شاٹ کے طور پر محفوظ کرتا ہے، جو برانچنگ اور مرجنگ کے عمل کو تیز کرتا ہے۔
  • ورژن کنٹرول سسٹم — ایک ہی پروجیکٹ پر بیک وقت کام کرنے کا مسئلہ حل کرتا ہے، کوڈ مرج کرتے وقت تنازعات کو روکتا ہے۔

Git میں مخزن کیا ہے

Git مخزن — ایک ڈیٹا ڈھانچہ ہے جس میں ورژن کنٹرول سسٹم پروجیکٹ فائلوں کی تبدیلیوں کی تاریخ بیان کرنے والے میٹا ڈیٹا اور آبجیکٹ محفوظ کرتا ہے۔ جب ڈویلپر git init کمانڈ سے مخزن کو ابتدائی شکل دیتا ہے، Git پروجیکٹ روٹ میں ایک پوشیدہ فولڈر .git بناتا ہے۔

اس فولڈر کے اندر سسٹم کے کام کرنے کے لیے ضروری تمام آبجیکٹ، حوالہ جات اور کنفیگریشن فائلیں ہوتی ہیں۔ مخزن کسی خاص مقام سے منسلک نہیں ہوتا — ڈویلپر اسے مقامی طور پر بنا سکتا ہے اور پھر کسی دور دراز سرور سے منسلک کر سکتا ہے۔

Git تقسیم شدہ مخزن ماڈل استعمال کرتا ہے: پروجیکٹ کا ہر رکن اپنے کمپیوٹر پر تاریخ کی مکمل کاپی رکھتا ہے۔ اس کا مطلب ہے کہ زیادہ تر کارروائیاں — کمٹ، تاریخ دیکھنا، برانچ بنانا — سرور سے رابطہ کیے بغیر مقامی طور پر انجام دی جاتی ہیں۔

Git دستاویزات کے مطابق، تقسیم شدہ فن تعمیر سسٹم کو خرابیوں کے خلاف مزاحم بناتا ہے: اگر سرور ڈاؤن ہو جائے، کوئی بھی مقامی مخزن پروجیکٹ کی مکمل تاریخ بحال کرنے کا ذریعہ بن سکتا ہے۔

مقامی اور دور دراز مخزن

مقامی مخزن — ڈویلپر کے کمپیوٹر پر پروجیکٹ کی کاپی ہے۔ اس میں کمٹ، برانچ اور ٹیگ کی مکمل تاریخ ہوتی ہے اور نیٹ ورک کنکشن کے بغیر commit، branch، merge اور rebase کارروائیاں کرنے دیتا ہے۔

دور دراز مخزن — سرور پر میزبانی کی جاتی ہے اور ٹیم کے تمام اراکین کے لیے مطابقت پذیری کے نقطہ کے طور پر کام کرتی ہے۔ ڈویلپر git push کمانڈ سے اپنی تبدیلیاں بھیجتے ہیں اور git pull کمانڈ سے دوسروں کی تبدیلیاں لیتے ہیں۔

مقامی اور دور دراز مخزن کے درمیان کنکشن remote origin — Git کنفیگریشن میں محفوظ سرور URL — کے ذریعے ترتیب دیا جاتا ہے۔ ایک مقامی مخزن کئی دور دراز مخازن سے منسلک ہو سکتا ہے، جو فورک کے ساتھ کام کرتے وقت مفید ہے۔

اس ماڈل کا بنیادی فائدہ یہ ہے کہ ڈویلپر آف لائن موڈ میں کوڈ پر کام کر سکتا ہے اور صرف نتیجہ بھیجنے کے لیے تیار ہونے پر تبدیلیاں مطابقت پذیر کر سکتا ہے۔

مقامی اور دور دراز مخزن کے درمیان فرق

خصوصیتمقامیدور دراز
مقامڈویلپر کے کمپیوٹر پرسرور پر (GitHub, GitLab)
نیٹ ورک کے بغیر رسائیتمام کارروائیوں تک مکمل رسائیکنکشن کے بغیر دستیاب نہیں
مطابقت پذیریدور دراز کے ساتھ Push/Pullمقامی سے push وصول کرتا ہے
بیک اپڈیٹا کے نقصان سے محفوظ نہیںبیک اپ کے ساتھ سرور پر محفوظ

Git مخزن میں ڈیٹا کیسے محفوظ کرتا ہے

Git کا ذخیرہ کرنے کا ماڈل دوسرے ورژن کنٹرول سسٹم سے بنیادی طور پر مختلف ہے۔ ورژنز کے درمیان تبدیلیوں کی فہرست (ڈیلٹا) محفوظ کرنے کے بجائے، Git ہر کمٹ کے وقت پروجیکٹ کی تمام فائلوں کے مکمل سنیپ شاٹ محفوظ کرتا ہے۔

مخزن میں ہر آبجیکٹ ایک منفرد 40 حرفی SHA-1 ہیش سے پہچانا جاتا ہے۔ اگر فائل کا مواد کمٹ کے درمیان تبدیل نہیں ہوا، Git نیا آبجیکٹ نہیں بناتا بلکہ موجودہ کو دوبارہ استعمال کرتا ہے — اس سے جگہ بچتی ہے۔

Git چار قسم کے آبجیکٹ استعمال کرتا ہے: blob (فائل کا مواد)، tree (ڈائریکٹری کی ساخت)، commit (میٹا ڈیٹا کے ساتھ سنیپ شاٹ) اور tag (کمٹ کا نامی حوالہ)۔ تمام آبجیکٹ .git/objects فولڈر میں محفوظ ہوتے ہیں۔

Git Internals کے مطابق، Git کا آبجیکٹ ماڈل ڈیٹا کی سالمیت کو یقینی بناتا ہے: فائل کے مواد میں کوئی بھی تبدیلی نئی ہیش پیدا کرتی ہے، جس سے تاریخ میں بغیر پکڑے تبدیلی کرنا ناممکن ہو جاتا ہے۔

.git فولڈر کی ساخت

.git فولڈر مخزن کا دل ہے۔ اس کے بغیر Git تبدیلیوں کو ٹریک نہیں کر سکتا، اور ایک عام ڈائریکٹری صرف فائلوں کا ایک مجموعہ رہ جاتی ہے۔ اس فولڈر کی ساخت کو سمجھنا مخزن کے مسائل کی تشخیص میں مدد کرتا ہے۔

  • objects/ — مخزن کے تمام آبجیکٹ: blobs، trees، commits، tags۔ کمپریسڈ شکل میں محفوظ۔
  • refs/ — کمٹ کے حوالہ جات: heads (برانچیں)، tags (لیبل)، remotes (دور دراز برانچیں)۔
  • HEAD — فائل جو موجودہ فعال برانچ یا کمٹ کی طرف اشارہ کرتی ہے۔
  • config — مخزن کی ترتیبات: دور دراز URL، صارف نام، ای میل اور دیگر پیرامیٹرز۔
  • index — اسٹیجنگ ایریا جہاں Git کمٹ کے لیے تیار فائلوں کے بارے میں معلومات محفوظ کرتا ہے۔
  • logs/ — حوالہ جات کی تازہ کاری کے لاگ (reflog) جو HEAD اور برانچوں کی نقل و حرکت کی تاریخ محفوظ کرتے ہیں۔

HEAD فائل خاص توجہ کی مستحق ہے۔ عام حالت میں اس میں برانچ کا علامتی حوالہ ہوتا ہے، مثال کے طور پر ref: refs/heads/main۔ detached HEAD حالت میں یہ براہ راست کمٹ کی طرف اشارہ کرتا ہے — اس کا مطلب ہے کہ نئے کمٹ کسی بھی برانچ سے منسلک نہیں ہوں گے۔

مخزن کے ساتھ بنیادی کارروائیاں

Git مخزن کے ساتھ کام کرنے میں بنیادی کارروائیوں کا ایک سیٹ شامل ہے جو ڈویلپر روزانہ انجام دیتا ہے۔ ہر کارروائی نئے آبجیکٹ شامل کرکے یا حوالہ جات منتقل کرکے مخزن کی حالت تبدیل کرتی ہے۔

  • git init — موجودہ ڈائریکٹری میں ایک نیا خالی مخزن بناتا ہے۔ Git ابتدائی ساخت کے ساتھ .git فولڈر بناتا ہے۔
  • git clone — موجودہ دور دراز مخزن کو تمام کمٹ تاریخ کے ساتھ مقامی مشین پر کاپی کرتا ہے۔
  • git add — فائلوں کی تبدیلیوں کو اسٹیجنگ ایریا (انڈیکس) میں شامل کرتا ہے، انہیں کمٹ کے لیے تیار کرتا ہے۔
  • git commit — انڈیکس سے ڈیٹا کی بنیاد پر پروجیکٹ کا سنیپ شاٹ بناتا ہے اور اسے نئے کمٹ آبجیکٹ کے طور پر محفوظ کرتا ہے۔
  • git push — مقامی مخزن سے دور دراز مخزن میں نئے کمٹ بھیجتا ہے، سرور پر برانچیں اپ ڈیٹ کرتا ہے۔
  • git pull — دور دراز مخزن سے نئے کمٹ لاتا ہے اور انہیں موجودہ مقامی برانچ سے ملا دیتا ہے۔

push اور pull کارروائیاں واحد ہیں جن کے لیے دور دراز سرور سے کنکشن کی ضرورت ہے۔ باقی تمام کارروائیاں مکمل طور پر مقامی طور پر انجام دی جاتی ہیں، جو تاریخ کے بڑے حجم میں بھی تیز رفتار کو یقینی بناتی ہیں۔

مخزن میں فائل کی زندگی کا دور

مخزن میں ہر فائل چار حالتوں سے گزرتی ہے: untracked (ٹریک نہیں کی گئی)، modified(تبدیل شدہ)، staged (تیار) اور committed (کمٹ شدہ)۔ Git صرف ان فائلوں کو ٹریک کرتا ہے جو git add کے ذریعے واضح طور پر شامل کی گئی ہیں یا جو پہلے سے کمٹ تاریخ میں ہیں۔

اس ماڈل کو سمجھنا Git کے ساتھ مؤثر طریقے سے کام کرنے کی کلید ہے۔ ڈویلپر منتخب طور پر تبدیل شدہ فائلوں کے صرف ایک حصے کو کمٹ کے لیے تیار کر سکتا ہے، واضح وضاحت کے ساتھ منطقی طور پر مکمل کمٹ بنا سکتا ہے۔

دور دراز مخازن عام طور پر خصوصی پلیٹ فارمز پر میزبانی کی جاتی ہیں جو ویب انٹرفیس، رسائی کے انتظام کا نظام اور مشترکہ ترقی کے لیے اضافی ٹولز فراہم کرتی ہیں۔

  • GitHub — 100 ملین سے زیادہ مخازن کے ساتھ سب سے بڑا پلیٹ فارم۔ Actions، Pull Requests، Issues اور Wiki فراہم کرتا ہے۔ عوامی پروجیکٹس کے لیے مفت۔
  • GitLab — مربوط CI/CD، Container Registry اور بلٹ ان DevOps پائپ لائن والا پلیٹ فارم۔ SaaS اور self-hosted ورژن کے طور پر دستیاب۔
  • Bitbucket — Jira اور Trello انضمام کے ساتھ Atlassian کا حل۔ لچکدار رسائی کی ترتیبات کی وجہ سے کارپوریٹ ماحول میں مشہور۔

پلیٹ فارم کا انتخاب ٹیم کے سائز، رازداری کی ضروریات اور ضروری انضمام پر منحصر ہے۔ موبائل ڈویلپمنٹ کے لیے، وسیع کمیونٹی سپورٹ اور iOS اور Android کے لیے CI/CD ٹولز کے انضمام کی وجہ سے اکثر GitHub کا انتخاب کیا جاتا ہے۔

مخزن کے ساتھ کام کرنے کے کمانڈ کی مثالیں

ایک عملی منظر نامے پر غور کریں: ایک ڈویلپر موجودہ مخزن کو کلون کرتا ہے، ایک نئی برانچ بناتا ہے، تبدیلیاں کرتا ہے اور انہیں سرور پر بھیجتا ہے۔ ہر کمانڈ مخزن کے مختلف اجزاء کے ساتھ کام کرنے کا مظاہرہ کرتا ہے۔

bash
# دور دراز مخزن کو کلون کرنا
git clone https://github.com/user/mobile-app.git

# پروجیکٹ ڈائریکٹری میں جانا
cd mobile-app

# نئی فیچر برانچ بنانا اور اس پر سوئچ کرنا
git checkout -b feature/auth

# تبدیل شدہ فائلوں کی حیثیت چیک کرنا
git status

# تمام تبدیلیاں اسٹیجنگ ایریا میں شامل کرنا
git add .

# وضاحت کے ساتھ کمٹ بنانا
git commit -m "Add authentication module"

# دور دراز مخزن میں تبدیلیاں بھیجنا
git push origin feature/auth

git status کمانڈ روزمرہ کے کام میں سب سے مفید کمانڈز میں سے ایک ہے۔ یہ دکھاتا ہے کہ کون سی فائلیں تبدیل ہوئی ہیں، کون سی کمٹ کے لیے تیار ہیں اور کون سی Git کے ذریعے بالکل ٹریک نہیں کی جا رہی ہیں۔

کمٹ کی تاریخ دیکھنا

مخزن کی تاریخ کا تجزیہ کرنے کے لیے git log کمانڈ مختلف فارمیٹنگ فلیگ کے ساتھ استعمال ہوتی ہے۔ یہ کمٹ کی ترتیب، ان کے مصنفین، تاریخوں اور SHA-1 شناخت کنندگان کو دکھاتا ہے۔

bash
# برانچ گراف ویژولائزیشن کے ساتھ تاریخ دیکھنا
git log --oneline --graph --all

# کسی مخصوص کمٹ میں تبدیلیاں دیکھنا
git show a1b2c3d

# موجودہ حالت کا آخری کمٹ سے موازنہ کرنا
git diff HEAD

# کسی مخصوص فائل کی تاریخ دیکھنا
git log --follow src/MainActivity.kt

--graph فلیگ برانچنگ کا ASCII گراف دکھاتا ہے، جو متعدد برانچوں پر فعال کام والے مخازن میں خاص طور پر مفید ہے۔ بار بار ریلیز والے موبائل پروجیکٹس کے لیے، بصری گراف ڈویلپمنٹ کی ساخت کا فوری جائزہ لینے میں مدد کرتا ہے۔

اکثر پوچھے گئے سوالات

مخزن پروجیکٹ سے کیسے مختلف ہے؟

مخزن تبدیلیوں کی تاریخ کے ساتھ کوڈ کا تکنیکی ذخیرہ ہے۔ پروجیکٹ ایک وسیع تصور ہے جس میں مخزن، کام کے انتظام کا نظام، دستاویزات اور ترقی کے عمل شامل ہیں۔ ایک پروجیکٹ میں کئی مخازن ہو سکتے ہیں۔

GitHub پر مخزن کیسے بنایا جائے؟

New بٹن پر کلک کرکے GitHub ویب انٹرفیس کے ذریعے ایک نیا مخزن بنائیں۔ نام، تفصیل اور رسائی کی سطح متعین کریں۔ پھر مخزن کو مقامی مشین پر کلون کریں یا git remote add origin کے ذریعے موجودہ مقامی مخزن سے منسلک کریں۔

کیا حذف شدہ مخزن بحال کیا جا سکتا ہے؟

اگر دور دراز مخزن سرور سے حذف ہو گیا ہے لیکن کم از کم ایک ڈویلپر کے پاس مقامی کاپی ہے، تو مخزن بحال کیا جا سکتا ہے۔ بس ایک نیا دور دراز مخزن بنائیں اور پوری تاریخ کے ساتھ مقامی کاپی سے git push --force چلائیں۔

مخزن کا فورک کیا ہے؟

فورک آپ کے اکاؤنٹ پر کسی اور کے مخزن کی کاپی ہے۔ آپ کو تاریخ کی مکمل کاپی ملتی ہے اور آپ اصلی کو متاثر کیے بغیر کوئی بھی تبدیلی کر سکتے ہیں۔ فورک Pull Request کے ذریعے اوپن سورس پروجیکٹس میں حصہ لینے کے لیے استعمال ہوتے ہیں۔

مخزن کا سائز کیسے کم کیا جائے؟

آبجیکٹ کو کمپریس کرنے اور ناقابل رسائی ڈیٹا ہٹانے کے لیے git gc استعمال کریں۔ git filter-branch یا git filter-repo کے ذریعے تاریخ سے بڑی فائلیں ہٹائیں۔ بائنری فائلوں والے پروجیکٹس کے لیے Git LFS (Large File Storage) پر غور کریں۔

خلاصہ

  • Git مخزن — مکمل تبدیلی کی تاریخ کے ساتھ کوڈ کا ذخیرہ، جہاں ہر کمٹ ایک مخصوص وقت پر تمام پروجیکٹ فائلوں کا سنیپ شاٹ ہے۔
  • مقامی مخزن — ڈویلپر کے کمپیوٹر پر محفوظ اور نیٹ ورک کنکشن کے بغیر Git کارروائیوں کے مکمل سیٹ کی حمایت کرتا ہے۔
  • دور دراز مخزن — push اور pull کے ذریعے ٹیم کے کام کو ہم آہنگ کرتا ہے، تمام شرکاء کے لیے سچائی کا واحد ذریعہ فراہم کرتا ہے۔
  • .git فولڈر — تمام سروس کی معلومات پر مشتمل ہے: آبجیکٹ، برانچ کے حوالہ جات، کنفیگریشن اور reflog آپریشن جرنل۔
  • GitHub، GitLab اور Bitbucket — اضافی CI/CD ٹولز کے ساتھ دور دراز مخزن کی میزبانی کے اہم پلیٹ فارم ہیں۔
  • Git کا آبجیکٹ ماڈل — ہر آبجیکٹ کی شناخت کے لیے SHA-1 ہیش استعمال کرتا ہے، مخزن کے ڈیٹا کی سالمیت کی ضمانت دیتا ہے۔
  • سفارش: دن میں کم از کم ایک بار کمٹ کریں اور کام کے ہر مرحلے کی تکمیل کے بعد دور دراز مخزن سے مطابقت پذیر ہوں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں