گٹ میں جدید تصورات: طاقتور خصوصیات اور تکنیکوں کی تلاش

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 ورک فلو اور پروجیکٹ مینجمنٹ کو بہت بہتر بنائے گا۔