Гит Мерге-опција но-фф

Git Merge No Ff Option



Способност лаког спајања гита једна је од његових предности. Током спајања, гит користи брзо премотавање напред када уочи да је ХЕАД тренутне гране предак урезивања које покушавате да спојите. У премотавању унапред, нема новог урезивања. Гит само помера показивач. Ако ово понашање није пожељно, можете користити заставицу но-фф за креирање новог урезивања за спајање.

Како спајање изгледа са и без премотавања унапред

Након премотавања унапред, ваша историја гита ће изгледати овако:







Ц0 -> Ц1 -> Ц2—> Ц3



За исти број урезивања, ево историје спајања без премотавања унапред:







У првом случају нема назнака да је било гранања. У другом случају, историја приказује предају Ц4 да означи где је дошло до спајања.

Ходање кроз пример

Направићете гит спремиште, направити грану и затим покушати спојити са и без премотавања унапред.



Одељак 1: Подешавање

Прво, можете да креирате гит спремиште са следећим корацима:

$ мкдир мој_пројекат
$ цд мој_пројекат
$ гит инит
$ тоуцх а.ткт
$ гит адд -А
$ гит цоммит -м 'Ц0: Додавање а.ткт'

Сада направимо грану под називом феатурес и извршимо неколико промена:

карактеристике $ гит огранка
$ гит цхецкоут функције
$ тоуцх б.ткт
$ гит адд -А
$ гит цоммит -м 'Ц1: Додавање б.ткт'
$ тоуцх ц.ткт
$ гит адд -А
$ гит цоммит -м 'Ц2: Додавање ц.ткт'
$ тоуцх д.ткт
$ гит адд -А
$ гит цоммит -м 'Ц3: Додавање д.ткт'

Одељак 2: Спајање са премотавањем унапред

Вратимо се на главну грану и спојимо грану функција у њу:

$гит цхецкоутгосподару
$гит мергеКарактеристике

Излаз:

Ажурирање 08076фб..9ее88еб
Убрзај
б.ткт | 0
ц.ткт | 0
д.ткт | 0
3 датотеке су промењене, 0 уметања (+), 0 брисања (-)
начин рада 100644 б.ткт
начин рада 100644 ц.ткт
начин рада 100644 д.ткт

Ако проверите историју, видећете:

$ гит лог --онелине
9ее88еб Ц3: Додавање д.ткт
ц72б92ц Ц2: Додавање ц.ткт
2е4039е Ц1: Додавање б.ткт
08076фб Ц0: Додавање а.ткт

Дакле, сви урези из гране функција сада су у главној грани. Ако наставите да мењате мастер, нема начина да сазнате када је грана функција спојена у њу.

Одељак 3: Без премотавања унапред

Поновите одељак 1 за нову фасциклу.

Затим покушајте спајање без брзог премотавања унапред:

$гит цхецкоутгосподару
$гит мерге --но-ффодлика

Отвориће се следеће у подразумеваном уређивачу текста вашег гита:

Споји грану'Карактеристике'
# Унесите поруку урезивања да бисте објаснили зашто је ово спајање потребно,
# нарочито ако споји ажурирано узводно у грану теме.
#
# Редови који почињу са '#' ће бити занемарени, а празна порука ће бити прекинута
# урезивање.

Измените коментаре. У овом случају, можете само додати Ц4: пре спајања „функција“ гране. Излаз би требао изгледати овако:

Спајање је изведено помоћу 'рекурзивне' стратегије.
б.ткт | 0
ц.ткт | 0
д.ткт | 0
3 датотеке су промењене, 0 уметања (+), 0 брисања (-)
начин рада 100644 б.ткт
начин рада 100644 ц.ткт
начин рада 100644 д.ткт

Сада, ако проверите историју, требало би да изгледа овако:

$ гит лог --онелине
е071527 Ц4: Споји 'функције' гране
бб79ц25 Ц3: Додавање д.ткт
692бд8ц Ц2: Додавање ц.ткт
а0дф62а Ц1: Додавање б.ткт
7575971 Ц0: Додавање а.ткт

Можете видети да иако имате потпуно исте промене, ова верзија спајања има додатни Ц4 урезивање које означава спајање гране функција у мастер.

Закључак

Гит мерге но-фф застава помаже у стварању читљивије историје. Омогућава вам да поставите ознаке које јасно показују где је дошло до спајања. Може вам уштедети време и труд током отклањања грешака.

Даље истраживање:

Референце: