Git

Git Merge -no-ff variants

Git Merge -no-ff variants

Izpratne par Git Merge no-ff opciju

Viena no stiprākajām pusēm ir git vienkāršā apvienošanās spēja. Apvienošanās laikā git izmanto apvienošanu ātri uz priekšu, kad pamanīs, ka pašreizējās filiāles GALVS ir saistības, kuru mēģināt apvienot, priekštecis. Apvienojot ātri uz priekšu, nav jaunu saistību. Gits tikai pārvieto rādītāju. Ja šī darbība nav vēlama, varat izmantot karodziņu no-ff, lai izveidotu jaunu apvienošanās saistību.

Kā sapludināšana izskatās ātri un bez priekšu

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 pārsūtīšanas:

Pirmajā gadījumā nekas neliecina, ka būtu notikusi atzarošana. Otrajā gadījumā vēsture rāda C4 apņemšanos norādīt apvienošanās vietu.

Ejot caur piemēru

Jūs izveidosiet git repozitoriju, izveidosiet filiāli un pēc tam mēģināsiet apvienot gan ar priekšu, gan bez tā.

1. sadaļa: Iestatīšana

Pirmkārt, varat izveidot git repozitoriju, veicot šādas darbības:

$ mkdir my_project
$ cd my_project
$ git init
$ pieskarieties a.txt
$ git pievienot -A
$ git saistīt -m "C0: pievienojot a.txt "

Tagad izveidosim filiāli ar nosaukumu Features un izdarīsim dažas izmaiņas:

$ git filiāles funkcijas
$ git norēķinu funkcijas
$ pieskarieties b.txt
$ git pievienot -A
$ git saistīt -m "C1: b pievienošana.txt "
$ pieskarieties c.txt
$ git pievienot -A
$ git saistīt -m "C2: c pievienošana.txt "
$ pieskarieties d.txt
$ git pievienot -A
$ git saistīt -m "C3: pievienojot d.txt "

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

Atgriezīsimies pie galvenā atzara un apvienosim tajā atzarus:

$ git norēķinu meistars
$ git sapludināšanas funkcijas

Izeja:

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

Pārbaudot vēsturi, redzēsiet:

$ git log - tiešsaistē
9ee88eb C3: pievienojot d.txt
c72b92c C2: pievienojot c.txt
2e4039e C1: b pievienošana.txt
08076fb C0: Pievienojot a.txt

Tātad, visas saistības no filiāles iezīmēm tagad atrodas galvenajā zarā. Ja turpināsit veikt izmaiņas master, nav iespējas uzzināt, kad tajā tika apvienota funkciju filiāle.

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 norēķinu meistars
Funkcija $ git merge --no-ff

Jūsu git noklusējuma teksta redaktorā tas atvērs:

Apvienot filiāles funkcijas
# Lūdzu, ievadiet saistību ziņojumu, lai paskaidrotu, kāpēc šī apvienošana ir nepieciešama,
# it īpaši, ja tas apvieno atjauninātu augšup pa tēmas atzaru.
#
# Rindas, kas sākas ar “#”, tiks ignorētas, un tukšs ziņojums tiek pārtraukts
# apņemties.

Mainīt komentārus. Šajā gadījumā jūs varat vienkārši pievienot “C4:” pirms “Merge branch 'features” ”. Izejai vajadzētu izskatīties šādi:

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

Ja pārbaudīsit vēsturi, tai vajadzētu izskatīties šādi:

$ git log - tiešsaistē
e071527 C4: apvienot filiāles “funkcijas”
bb79c25 C3: pievienojot d.txt
692bd8c C2: pievienojot c.txt
a0df62a C1: b pievienošana.txt
7575971 C0: Pievienojot a.txt

Var redzēt, ka, pat ja jums ir tieši tādas pašas izmaiņas, šai apvienošanas versijai ir papildu C4 saistība, kas nozīmē funkciju atzarojuma apvienošanu galvenajā.

Secinājums

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

Turpmāka izpēte:

Atsauces:
Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...
Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...
WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...