Rebasing
ری بیسنگ آپ کو کمٹ ہسٹری میں ترمیم کرکے ایک برانچ سے دوسری برانچ میں تبدیلیاں شامل کرنے کی اجازت دیتی ہے۔ یہ سورس برانچ سے کمٹٹس کو ٹارگٹ برانچ میں دوبارہ چلاتا ہے۔ اس کے نتیجے میں ایک صاف ستھری اور زیادہ لکیری کمٹ کی تاریخ ہوتی ہے۔
مثال: فرض کریں کہ آپ کے پاس ایک فیچر برانچ ہے جسے آپ کہتے ہیں feature-branch
اور آپ برانچ سے تازہ ترین تبدیلیاں شامل کرنا چاہتے ہیں main
۔ آپ درج ذیل کمانڈ کو استعمال کر سکتے ہیں:
git checkout feature-branch
git rebase main
یہ برانچ سے کمٹٹس main
پر لاگو کرے گا feature-branch
۔ بحالی کے عمل کے دوران کسی بھی تنازعات کو حل کرنے کی ضرورت ہوگی۔
Stashing
سٹیشنگ آپ کو اپنی موجودہ تبدیلیوں کو محفوظ کرنے کی اجازت دیتی ہے، جو کہ ارتکاب کے لیے تیار نہیں ہیں، اور عارضی طور پر ایک صاف ورکنگ ڈائرکٹری میں واپس لوٹ سکتے ہیں۔ یہ اس وقت مفید ہے جب آپ کو کسی مختلف برانچ میں جانے کی ضرورت ہو یا ان تبدیلیوں کا ارتکاب کیے بغیر کسی مختلف فیچر پر کام کرنا ہو جن پر آپ فی الحال کام کر رہے ہیں۔
مثال: فرض کریں کہ آپ فیچر برانچ پر کام کر رہے ہیں اور آپ نے کچھ تبدیلیاں کی ہیں، لیکن آپ کو دوسری برانچ میں جانے کی ضرورت ہے۔ آپ اپنی تبدیلیوں کو چھپانے کے لیے درج ذیل کمانڈز استعمال کر سکتے ہیں۔
git stash
نئی برانچ میں سوئچ کرنے کے بعد، آپ اس کے بعد چھپی ہوئی تبدیلیوں کو استعمال کر سکتے ہیں:
git stash apply
Git Hooks
Git Hooks
وہ اسکرپٹ ہیں جو مخصوص Git ایونٹس سے متحرک ہوتی ہیں، جیسے پری کمٹ، پوسٹ کمٹ، پری پُش وغیرہ۔ وہ آپ کو کچھ اعمال کو خودکار کرنے یا آپ کے ورک فلو میں مخصوص اصول نافذ کرنے کی اجازت دیتے ہیں۔
مثال: فرض کریں کہ آپ ارتکاب کرنے سے پہلے اپنے کوڈ پر لنٹر چلانا چاہتے ہیں۔ آپ ایک پری کمٹ ہک اسکرپٹ بنا سکتے ہیں جو لنٹر کو متحرک کرتا ہے اور کمٹ کو روکتا ہے اگر کوئی لنٹنگ کی غلطیاں ہوں۔
Git Submodule
Git Submodule
آپ کو اپنے مرکزی ذخیرے میں ایک اور گٹ ریپوزٹری کو بطور سب ڈائرکٹری شامل کرنے کی اجازت دیتا ہے۔ یہ اس وقت مفید ہے جب آپ کے پاس کوئی ایسا پروجیکٹ ہو جو بیرونی لائبریریوں یا اجزاء پر منحصر ہو۔
مثال: آپ کے پاس ایک پروجیکٹ ہے جس کے لیے ایک مخصوص لائبریری کی ضرورت ہے۔ لائبریری کے کوڈ کو اپنے ذخیرے میں نقل کرنے کے بجائے، آپ اسے ذیلی ماڈل کے طور پر شامل کر سکتے ہیں۔ اس طرح، آپ لائبریری کوڈ کو الگ رکھ سکتے ہیں اور ضرورت پڑنے پر اسے آسانی سے اپ ڈیٹ کر سکتے ہیں۔
Git Revert and Git Reset
Git Revert
ایک نیا کمٹ بنا کر سابقہ کمٹ کو کالعدم کرتا ہے جو اصل کمٹ میں کی گئی تبدیلیوں کو کالعدم کر دیتا ہے۔ Git Reset
دوسری طرف، آپ کو برانچ پوائنٹر کو ایک مختلف کمٹ پر منتقل کرنے کی اجازت دیتا ہے، کمٹ ہسٹری سے کمٹ کو مؤثر طریقے سے خارج کر دیتا ہے۔
مثال: اگر آپ آخری کمٹ کو کالعدم کرنا چاہتے ہیں، تو آپ git revert HEAD
ایک نیا کمٹ بنانے کے لیے استعمال کر سکتے ہیں جو آخری کمٹ میں کی گئی تبدیلیوں کو کالعدم کر دے۔ اگر آپ آخری کمٹ کو مکمل طور پر رد کرنا چاہتے ہیں، تو آپ git reset HEAD~1
برانچ پوائنٹر کو ایک کمٹ کے ذریعے واپس منتقل کرنے کے لیے استعمال کر سکتے ہیں۔
Git میں یہ جدید تصورات آپ کے ذخیرے کو مؤثر طریقے سے منظم کرنے کی طاقتور صلاحیتیں فراہم کرتے ہیں۔ یہ سمجھنا کہ ان کو کیسے استعمال کیا جائے اور انہیں کب لاگو کرنا ہے آپ کے Git ورک فلو اور پروجیکٹ مینجمنٹ کو بہت بہتر بنائے گا۔