Git Merge-ei-ff valik

Git Merge No Ff Option



Giti lihtne ühendamisvõime on selle üks tugevusi. Ühendamise ajal kasutab git kiirliitmist, kui märkab, et praeguse haru HEAD on ühendatava kohustuse esivanem. Edasiliitmisel pole uusi kohustusi. Git lihtsalt liigutab kursorit. Kui selline käitumine pole soovitav, saate lipu no-ff abil ühendamiseks uue kohustuse luua.

Kuidas ühendamine näeb välja ja edasi-tagasi

Pärast edasiliikumist näeb teie git ajalugu välja selline:







C0 -> C1 -> C2 -> C3



Sama arvu kohustuste puhul on siin ühendamise ajalugu ilma edasiliikumiseta:







Esimesel juhul pole märke selle kohta, et oleks toimunud hargnemine. Teisel juhul näitab ajalugu C4 -kohustust, mis näitab ühendamise asukohta.

Näite läbimine

Loote git-hoidla, loote haru ja proovite seejärel ühendada kiirelt edasi ja ilma.



1. jagu: seadistamine

Esiteks saate git -hoidla luua järgmiste sammudega:

$ mkdir my_project
$ cd my_project
$ git init
$ touch a.txt
$ git lisab -A
$ git pühenduda -m 'C0: a.txt lisamine'

Nüüd loome haru nimega funktsioonid ja teeme mõned muudatused:

$ git haru omadused
$ git kassafunktsioonid
$ touch b.txt
$ git lisab -A
$ git pühenduda -m 'C1: b.txt lisamine'
$ touch c.txt
$ git lisab -A
$ git pühenduda -m 'C2: c.txt lisamine'
$ touch d.txt
$ git lisab -A
$ git pühenduda -m 'C3: d.txt lisamine'

2. jagu: ühendage kiire edasisuunamisega

Läheme tagasi põhiharu juurde ja ühendame sellesse harud:

$git kassassemeister
$git ühendadaFunktsioonid

Väljund:

Uuendamine 08076fb..9ee88eb
Kiiresti edasi
b.txt | 0
c.txt | 0
d.txt | 0
3 faili muudetud, 0 sisestust (+), 0 kustutamist (-)
loomise režiim 100644 b.txt
loomise režiim 100644 c.txt
loomise režiim 100644 d.txt

Kui vaatate ajalugu, näete järgmist.

$ git log -oneline
9ee88eb C3: d.txt lisamine
c72b92c C2: lisatakse c.txt
2e4039e C1: b.txt lisamine
08076fb C0: a.txt lisamine

Niisiis, kõik funktsioonide haruga seotud kohustused on nüüd põhivaldkonnas. Kui jätkate põhis muudatuste tegemist, pole võimalik teada, millal funktsioonide haru sellesse liideti.

3. jagu: ilma edasisuunamiseta

Uue kausta jaoks korrake jaotist 1.

Seejärel proovige ühendada ilma edasikerimine:

$git kassassemeister
$git ühendada -ei-fftunnusjoon

See avab teie giti vaiketekstiredaktoris järgmise:

Ühendage haru'Funktsioonid'
# Palun sisestage kinnitussõnum, et selgitada, miks see ühendamine on vajalik,
# eriti kui see ühendab uuendatud ülesvoolu teemaharuks.
#
# '#' -Ga algavaid ridu ignoreeritakse ja tühi sõnum katkestatakse
# kohustus.

Muutke kommentaare. Sel juhul võite lihtsalt lisada C4: enne haru ühendamist „funktsioonid”. Väljund peaks välja nägema selline:

Ühendamine toimub rekursiivse strateegia abil.
b.txt | 0
c.txt | 0
d.txt | 0
3 faili muudetud, 0 sisestust (+), 0 kustutamist (-)
loomise režiim 100644 b.txt
loomise režiim 100644 c.txt
loomise režiim 100644 d.txt

Kui vaatate ajalugu, peaks see välja nägema järgmine:

$ git log -oneline
e071527 C4: Ühendage haru „funktsioonid”
bb79c25 C3: d.txt lisamine
692bd8c C2: lisatakse c.txt
a0df62a C1: b.txt lisamine
7575971 C0: a.txt lisamine

Näete, et kuigi teil on täpselt samad muudatused, sisaldab see ühendamisversioon täiendavat C4 -kohustust, mis tähendab funktsioonide ühendamist põhistruktuuriks.

Järeldus

Git merge no-ff lipp aitab luua loetavamat ajalugu. See võimaldab teil panna silte, mis näitavad selgelt, kus ühendamine toimus. See võib säästa aega ja vaeva silumise ajal.

Edasine uuring:

Viited: