Разумевање опције Гит Мерге но-фф
Једноставност спајања гита једна је од његових предности. Током спајања, гит користи брзо премотавање унапред када примети да је ХЕАД тренутне гране предак урезивања које покушавате да спојите. У брзом премотавању унапред нема новог урезивања. Гит само помера показивач. Ако ово понашање није пожељно, можете употријебити заставицу но-фф да бисте креирали ново урезивање за спајање.
Како изгледа спајање са брзом напред и без ње
После премотавања унапред, ваша гит историја ће изгледати овако:
Ц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 урезивање што означава спајање карактеристика гране у мастер.
Закључак
Ознака гит мерге но-фф помаже у стварању читљивије историје. Омогућава вам да ставите ознаке које јасно показују где је дошло до спајања. То вам може уштедети време и труд током отклањања грешака.
Даље истраживање:
- хттпс: // гит-сцм.цом / доцс / гит-мерге
Референце:
- Преливање стека: каква је разлика између гит-мерге-и-гит-мерге-но-фф
- хттпс: // ввв.атласки.цом / гит / туториали / усинг-бранцх / гит-мерге