گٹ انضمام –no-ff آپشن۔

Git Merge No Ff Option



گٹ کی آسانی سے ضم ہونے کی صلاحیت اس کی طاقتوں میں سے ایک ہے۔ انضمام کے دوران ، گٹ فاسٹ فارورڈ انضمام کا استعمال کرتا ہے جب یہ نوٹس کرتا ہے کہ موجودہ برانچ کا ہیڈ اس عہد کا آباؤ اجداد ہے جسے آپ ضم کرنے کی کوشش کر رہے ہیں۔ فاسٹ فارورڈ انضمام میں ، کوئی نیا عہد نہیں ہے۔ گٹ صرف اشارے کو منتقل کرتا ہے۔ اگر یہ سلوک مطلوبہ نہیں ہے تو ، آپ انضمام کے لیے ایک نیا عہد بنانے کے لیے no-ff پرچم استعمال کر سکتے ہیں۔

مرج فاسٹ فارورڈ کے ساتھ اور اس کے بغیر کیسا لگتا ہے۔

تیزی سے آگے بڑھنے کے بعد ، آپ کی گٹ ہسٹری اس طرح نظر آئے گی:







C0 -> C1 -> C2—> C3



کمٹمنٹ کی اتنی ہی تعداد کے لیے ، یہاں بغیر کسی فارورڈ کے انضمام کی تاریخ ہے:







پہلی صورت میں ، اس بات کا کوئی اشارہ نہیں ہے کہ کوئی برانچنگ تھی۔ دوسری صورت میں ، تاریخ ایک C4 کا ارتکاب دکھا رہی ہے جس سے ظاہر ہوتا ہے کہ انضمام کہاں ہوا۔

ایک مثال کے ذریعے چلنا۔

آپ ایک گٹ ذخیرہ بنائیں گے ، ایک شاخ بنائیں گے اور پھر فاسٹ فارورڈ کے ساتھ اور بغیر انضمام کی کوشش کریں گے۔



سیکشن 1: سیٹ اپ

پہلے ، آپ مندرجہ ذیل مراحل کے ساتھ گٹ ذخیرہ بنا سکتے ہیں۔

$ mkdir my_project
$ cd my_project
$ git init۔
$ touch a.txt
$ git add -A
$ git commit -m 'C0: a.txt شامل کرنا'

اب آئیے ایک برانچ بناتے ہیں جسے فیچر کہتے ہیں اور کچھ تبدیلیاں کرتے ہیں:

$ git برانچ کی خصوصیات۔
$ git چیک آؤٹ کی خصوصیات۔
$ touch b.txt
$ git add -A
$ git commit -m 'C1: b.txt شامل کرنا'
$ touch c.txt
$ git add -A
$ git commit -m 'C2: c.txt شامل کرنا'
$ touch d.txt
$ git add -A
$ git commit -m 'C3: d.txt شامل کرنا'

سیکشن 2: فاسٹ فارورڈنگ کے ساتھ ضم کریں۔

آئیے واپس ماسٹر برانچ پر جائیں اور فیچر برانچ کو اس میں ضم کریں:

$گٹ چیک آؤٹماسٹر
$گٹ انضمامخصوصیات

آؤٹ پٹ:

08076fb..9ee88eb اپ ڈیٹ ہو رہا ہے۔
تیزی سے آگے
b.txt | 0۔
c.txt | 0۔
d.txt | 0۔
3 فائلیں تبدیل ، 0 اندراج (+) ، 0 حذف (-)
موڈ 100644 b.txt بنائیں۔
موڈ 100644 c.txt بنائیں۔
موڈ 100644 d.txt بنائیں۔

اگر آپ تاریخ کو چیک کریں تو آپ دیکھیں گے:

$ git log --online
9ee88eb C3: d.txt شامل کرنا۔
c72b92c C2: c.txt شامل کرنا۔
2e4039e C1: b.txt شامل کرنا۔
08076fb C0: a.txt شامل کرنا۔

لہذا ، فیچرز برانچ سے ہونے والے تمام کام اب ماسٹر برانچ میں ہیں۔ اگر آپ ماسٹر میں تبدیلیاں کرتے رہتے ہیں تو ، یہ جاننے کا کوئی طریقہ نہیں ہے کہ فیچرز برانچ کو اس میں کب ضم کیا گیا۔

سیکشن 3: فاسٹ فارورڈنگ کے بغیر۔

ایک نئے فولڈر کے لیے سیکشن 1 کو دہرائیں۔

پھر ، تیزی سے آگے بڑھائے بغیر انضمام کی کوشش کریں:

$گٹ چیک آؤٹماسٹر
$گٹ انضمام --no-ffخصوصیت

یہ آپ کے گٹ کے ڈیفالٹ ٹیکسٹ ایڈیٹر میں درج ذیل کو کھول دے گا۔

برانچ ضم کریں۔'خصوصیات'
# براہ کرم کمٹ میسج درج کریں تاکہ یہ وضاحت کی جاسکے کہ یہ انضمام کیوں ضروری ہے ،
# خاص طور پر اگر یہ اپ ڈیٹ اسٹریم کو ٹاپک برانچ میں ضم کر دے۔
#
'#' سے شروع ہونے والی لائنوں کو نظر انداز کر دیا جائے گا ، اور ایک خالی پیغام ختم ہو جائے گا۔
# عہد

تبصرے میں ترمیم کریں۔ اس صورت میں ، آپ صرف C4 شامل کر سکتے ہیں: انضمام برانچ کی 'خصوصیات' سے پہلے۔ آؤٹ پٹ اس طرح نظر آنی چاہیے:

'بار بار چلنے والی' حکمت عملی سے بنایا گیا ضم۔
b.txt | 0۔
c.txt | 0۔
d.txt | 0۔
3 فائلیں تبدیل ، 0 اندراج (+) ، 0 حذف (-)
موڈ 100644 b.txt بنائیں۔
موڈ 100644 c.txt بنائیں۔
موڈ 100644 d.txt بنائیں۔

اب اگر آپ تاریخ کو چیک کریں تو ، یہ مندرجہ ذیل کی طرح نظر آنا چاہئے:

$ git log --online
e071527 C4: برانچ 'خصوصیات' کو ضم کریں
bb79c25 C3: d.txt شامل کرنا۔
692bd8c C2: c.txt شامل کرنا۔
a0df62a C1: b.txt شامل کرنا۔
7575971 C0: a.txt شامل کرنا۔

آپ دیکھ سکتے ہیں کہ اگرچہ آپ کے عین مطابق تبدیلیاں ہیں ، انضمام کے اس ورژن میں اضافی C4 کمٹ ہے جو کہ خصوصیات برانچ کو ماسٹر میں ضم کرنے کی علامت ہے۔

نتیجہ

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

مزید پڑھائی:

حوالہ جات: