Git sapludināšana-nē-ff iespēja

Git Merge No Ff Option



Git viegla sapludināšanas spēja ir viena no tās priekšrocībām. Apvienošanas laikā git izmanto sapludināšanu uz priekšu, kad tā pamana, ka pašreizējās filiāles GALVA ir priekštecis saistībai, kuru mēģināt apvienot. Ātri uz priekšu apvienojoties, jaunu saistību nav. Gits vienkārši pārvieto rādītāju. Ja šāda rīcība nav vēlama, varat izmantot karodziņu no-ff, lai izveidotu jaunu saistību apvienošanai.

Kā izskatās sapludināšana ar ātro uz priekšu un bez tās

Pēc ātras uz priekšu jūsu git vēsture izskatīsies šādi:







C0 -> C1 -> C2—> C3



Attiecībā uz tādu pašu saistību skaitu šeit ir apvienošanas vēsture bez ātras uz priekšu:







Pirmajā gadījumā nekas neliecina, ka būtu notikusi sazarošanās. Otrajā gadījumā vēsture rāda C4 saistības, lai norādītu, kur notika apvienošana.

Pastaiga caur piemēru

Jūs izveidosit git repozitoriju, izveidosit filiāli un pēc tam mēģināsit apvienot ar ātro uz priekšu un bez tās.



1. sadaļa: Uzstādīšana

Pirmkārt, jūs varat izveidot git krātuvi, veicot šādas darbības:

$ mkdir my_project
$ cd my_project
$ git init
$ touch a.txt
$ git pievienot -A
$ git saistīt -m 'C0: a.txt pievienošana'

Tagad izveidosim filiāli, ko sauc par funkcijām, un veiciet dažas izmaiņas:

$ git filiāles iezīmes
$ git izrakstīšanās funkcijas
$ touch b.txt
$ git pievienot -A
$ git saistīt -m 'C1: pievieno b.txt'
$ touch c.txt
$ git pievienot -A
$ git saistīt -m 'C2: pievieno c.txt'
$ touch d.txt
$ git pievienot -A
$ git saistīt -m 'C3: pievieno d.txt'

2. sadaļa: sapludināšana ar ātro pārsūtīšanu

Atgriezīsimies galvenajā nozarē un apvienosim tajā atzarus:

$git izrakstīšanāsmeistars
$git saplūstIespējas

Izeja:

Tiek atjaunināts 08076fb..9ee88eb
Ātri uz priekšu
b.txt | 0
c.txt | 0
d.txt | 0
Mainīti 3 faili, 0 ievietojumi (+), 0 dzēsumi (-)
izveidot režīmu 100644 b.txt
izveidot režīmu 100644 c.txt
izveidot režīmu 100644 d.txt

Pārbaudot vēsturi, jūs redzēsit:

$ git žurnāls -tiešsaistē
9ee88eb C3: d.txt pievienošana
c72b92c C2: pievieno c.txt
2e4039e C1: pievieno b.txt failu
08076fb C0: a.txt pievienošana

Tātad visas funkcijas, kas saistītas ar funkcijām, tagad atrodas galvenajā nozarē. Ja turpināsit veikt izmaiņas šablonā, nevarēs uzzināt, kad funkciju filiāle tajā ir apvienota.

3. sadaļa: bez ātras pārsūtīšanas

Atkārtojiet 1. sadaļu jaunai mapei.

Pēc tam mēģiniet apvienot bez ātras pārsūtīšanas.

$git izrakstīšanāsmeistars
$git saplūst -nē-ffiezīme

Jūsu git noklusējuma teksta redaktorā tiks atvērts šāds:

Apvienot filiāli'Iespējas'
# Lūdzu, ievadiet saistīšanas ziņojumu, lai paskaidrotu, kāpēc šī apvienošana ir nepieciešama,
# it īpaši, ja tas apvieno atjauninātu augšupvērstu tēmas nozari.
#
# Līnijas, kas sākas ar “#”, tiks ignorētas, un tukšs ziņojums tiks pārtraukts
# apņemšanās.

Mainiet komentārus. Šajā gadījumā jūs varat vienkārši pievienot C4: pirms sapludināt filiāles “features”. Rezultātam vajadzētu izskatīties šādi:

Apvienošana veikta, izmantojot “rekursīvo” stratēģiju.
b.txt | 0
c.txt | 0
d.txt | 0
Mainīti 3 faili, 0 ievietojumi (+), 0 dzēsumi (-)
izveidot režīmu 100644 b.txt
izveidot režīmu 100644 c.txt
izveidot režīmu 100644 d.txt

Tagad, pārbaudot vēsturi, tam vajadzētu izskatīties šādi:

$ git žurnāls -tiešsaistē
e071527 C4: apvienot filiāles 'funkcijas'
bb79c25 C3: pievienojot d.txt
692bd8c C2: pievieno c.txt
a0df62a C1: pievieno b.txt failu
7575971 C0: a.txt pievienošana

Jūs varat redzēt, ka, pat ja jums ir tieši tādas pašas izmaiņas, šai sapludināšanas versijai ir papildu C4 apņemšanās, kas nozīmē funkciju saplūšanu par galveno.

Secinājums

Git merge no-ff karogs palīdz izveidot lasāmāku vēsturi. Tas ļauj ievietot tagus, kas skaidri parāda, kur notika sapludināšana. Tas var ietaupīt laiku un pūles atkļūdošanas laikā.

Turpmāka izpēte:

Atsauces: