Git Merge –no-ff விருப்பம்

Git Merge No Ff Option



கிட்டின் எளிதான இணைக்கும் திறன் அதன் பலங்களில் ஒன்றாகும். ஒரு இணைப்பின் போது, ​​தற்போதைய கிளைகளின் HEAD நீங்கள் இணைக்க முயற்சிக்கும் உறுதிமொழியின் மூதாதையர் என்பதை கவனிக்கும்போது git வேகமாக முன்னோக்கி இணைப்பைப் பயன்படுத்துகிறது. வேகமான இணைப்பில், புதிய உறுதி எதுவும் இல்லை. Git சுட்டியை நகர்த்துகிறது. இந்த நடத்தை விரும்பத்தகாதது என்றால், இணைப்பிற்கான புதிய உறுதிப்பாட்டை உருவாக்க நீங்கள் நோ-எஃப்எஃப் கொடியைப் பயன்படுத்தலாம்.

இணைவு வேகமாக மற்றும் முன்னோக்கி இல்லாமல் எப்படி இருக்கிறது

வேகமாக முன்னேறிய பிறகு, உங்கள் கிட் வரலாறு இப்படி இருக்கும்:







C0 -> C1 -> C2—> C3



அதே எண்ணிக்கையிலான கமிட்டுகளுக்கு, வேகமாக முன்னோக்கி இல்லாமல் ஒரு இணைப்பு வரலாறு இங்கே:







முதல் வழக்கில், எந்த கிளை இருந்தது என்று எந்த அறிகுறியும் இல்லை. இரண்டாவது வழக்கில், இணைப்பு எங்கு நிகழ்ந்தது என்பதைக் குறிக்க C4 உறுதிப்பாட்டை வரலாறு காட்டுகிறது.

ஒரு உதாரணம் மூலம் நடைபயிற்சி

நீங்கள் ஒரு கிட் களஞ்சியத்தை உருவாக்கி, ஒரு கிளையை உருவாக்கி பின்னர் வேகமாக முன்னோக்கி மற்றும் இல்லாமல் இணைப்புகளை முயற்சி செய்வீர்கள்.



பிரிவு 1: அமைவு

முதலில், நீங்கள் பின்வரும் படிகளுடன் ஜிட் களஞ்சியத்தை உருவாக்கலாம்:

$ mkdir my_project
$ cd my_project
$ git init
$ a.txt ஐ தொடவும்
$ git add -A
$ git commit -m 'C0: a.txt' சேர்த்தல்

இப்போது அம்சங்கள் என்று ஒரு கிளையை உருவாக்கி சில மாற்றங்களைச் செய்வோம்:

$ git கிளை அம்சங்கள்
$ git புதுப்பிப்பு அம்சங்கள்
$ தொடு b.txt
$ git add -A
$ git commit -m 'C1: b.txt' சேர்த்தல்
$ டச் c.txt
$ git add -A
$ git commit -m 'C2: c.txt' சேர்த்தல்
$ தொடு d.txt
$ git add -A
$ git commit -m 'C3: d.txt' சேர்த்தல்

பிரிவு 2: வேகமாக முன்னனுப்புதல்

மீண்டும் முதன்மை கிளைக்கு சென்று அம்சக் கிளையை அதில் இணைப்போம்:

$ஜிட் செக் அவுட்குரு
$git இணைப்புஅம்சங்கள்

வெளியீடு:

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 --oneline
9ee88eb C3: d.txt ஐச் சேர்க்கிறது
c72b92c C2: c.txt சேர்த்தல்
2e4039e C1: b.txt சேர்த்தல்
08076fb C0: a.txt ஐச் சேர்க்கிறது

எனவே, அம்சங்கள் கிளையிலிருந்து அனைத்து கமிட்டுகளும் இப்போது முதன்மை கிளையில் உள்ளன. நீங்கள் மாஸ்டரில் தொடர்ந்து மாற்றங்களைச் செய்தால், அம்சங்கள் கிளை எப்போது அதில் இணைக்கப்பட்டது என்பதை அறிய வழி இல்லை.

பிரிவு 3: வேகமாக முன்னனுப்புதல் இல்லாமல்

புதிய கோப்புறைக்கு பிரிவு 1 ஐ மீண்டும் செய்யவும்.

பின்னர், வேகமாக அனுப்புதல் இல்லாமல் ஒரு இணைப்பை முயற்சிக்கவும்:

$ஜிட் செக் அவுட்குரு
$git இணைப்பு --no-ffஅம்சம்

இது உங்கள் git இன் இயல்புநிலை உரை திருத்தியில் பின்வருவனவற்றைத் திறக்கும்:

கிளையை இணைக்கவும்'அம்சங்கள்'
இந்த இணைப்பு ஏன் அவசியம் என்பதை விளக்க தயவுசெய்து ஒரு உறுதி செய்தியை உள்ளிடவும்,
# குறிப்பாக இது புதுப்பிக்கப்பட்ட அப்ஸ்ட்ரீமை ஒரு தலைப்புக் கிளையாக இணைத்தால்.
#
# '#' இல் தொடங்கும் கோடுகள் புறக்கணிக்கப்படும், மேலும் ஒரு வெற்று செய்தி நிறுத்தப்படும்
# உறுதி.

கருத்துகளை மாற்றவும். இந்த வழக்கில், நீங்கள் C4 ஐ சேர்க்கலாம்: கிளை 'அம்சங்களை' இணைப்பதற்கு முன். வெளியீடு இப்படி இருக்க வேண்டும்:

'ரிகர்சிவ்' வியூகத்தால் செய்யப்பட்ட இணைப்பு.
b.txt | 0
c.txt | 0
d.txt | 0
3 கோப்புகள் மாற்றப்பட்டன, 0 செருகல்கள் (+), 0 நீக்குதல் (-)
பயன்முறையை உருவாக்கவும் 100644 b.txt
பயன்முறையை உருவாக்கவும் 100644 c.txt
பயன்முறையை உருவாக்கவும் 100644 d.txt

இப்போது நீங்கள் வரலாற்றைச் சரிபார்த்தால், அது பின்வருமாறு இருக்கும்:

$ git log --oneline
e071527 C4: கிளை 'அம்சங்களை' இணைக்கவும்
bb79c25 C3: d.txt ஐச் சேர்க்கிறது
692bd8c C2: c.txt சேர்த்தல்
a0df62a C1: b.txt சேர்த்தல்
7575971 C0: a.txt ஐச் சேர்க்கிறது

உங்களிடம் அதே மாற்றங்கள் இருந்தாலும், இந்த இணைப்பின் பதிப்பில் கூடுதல் சி 4 கமிட் உள்ளது, இது அம்சங்கள் கிளையை மாஸ்டரில் இணைப்பதை குறிக்கிறது.

முடிவுரை

கிட் மெர்ஜ் நோ-எஃப்எஃப் கொடி மேலும் படிக்கக்கூடிய வரலாற்றை உருவாக்க உதவுகிறது. இணைப்புகள் எங்கு நிகழ்ந்தன என்பதைக் காட்டும் குறிச்சொற்களை வைக்க இது உங்களை அனுமதிக்கிறது. பிழைத்திருத்தத்தின் போது இது உங்கள் நேரத்தையும் முயற்சியையும் மிச்சப்படுத்தும்.

மேலதிக ஆய்வு:

குறிப்புகள்: