Git

Git Merge -no-ff variant

Git Merge -no-ff variant

Git Merge no-ff Optioni mõistmine

Giti lihtne ühendamisvõime on üks selle tugevusi. Ühendamise ajal kasutab git kiiresti edasi ühendamist, kui ta märkab, et praeguse haru HEAD on ühendamise esivanem. Kiiresti edasi ühendamisel pole uut kohustust. Git lihtsalt liigutab kursorit. Kui selline käitumine pole soovitav, saate lipu no-ff abil ühendamiseks uue sidumise luua.

Kuidas ühendamine välja näeb koos edasiliikumisega ja ilma

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

C0 -> C1 -> C2-> C3

Sama arvu kulukohustuste jaoks on siin liitmisajalugu ilma kiiret edasiliikumist:

Esimesel juhul pole viiteid hargnemisele. Teisel juhul näitab ajalugu C4 kohustust näidata, kus ühendamine toimus.

Näite kaudu kõndides

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

1. jagu: seadistamine

Kõigepealt saate luua git-hoidla järgmiste toimingutega:

$ mkdir my_project
$ cd my_project
$ git init
$ puudutage a.txt
$ git lisa -A
$ git pühendama -m "C0: a lisamine.txt "

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

filiaali $ git funktsioonid
Kassa $ git funktsioonid
$ puudutage b.txt
$ git lisa -A
$ git toime -m "C1: b lisamine.txt "
$ puudutage c.txt
$ git lisa -A
$ git pühendu -m "C2: c lisamine.txt "
$ puudutage d.txt
$ git lisa -A
$ git pühendama -m "C3: d lisamine.txt "

2. jagu: ühendamine kiire edasisaatmisega

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

kassas $ git master
$ git ühendamise funktsioonid

Väljund:

08076fb värskendamine ... 9ee88eb
Kiiresti edasi
b.txt | 0
c.txt | 0
d.txt | 0
3 faili muudetud, 0 sisestust (+), 0 kustutust (-)
loomisrežiim 100644 b.txt
loomisrežiim 100644 c.txt
loomisrežiim 100644 d.txt

Kui kontrollite ajalugu, näete:

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

Niisiis, kõik funktsioonide filiaalist tehtud kohustused asuvad nüüd põhiharus. Kui jätkate master-is muudatuste tegemist, ei saa kuidagi teada, millal funktsioonide haru sellesse liideti.

3. jagu: ilma kiire edastamiseta

Korrake 1. jaotist uue kausta jaoks.

Seejärel proovige ühendada ilma kiiret edasiliikumist:

kassas $ git master
Funktsioon $ git merge --no-ff

See avab teie giti vaiketekstiredaktoris järgmise:

Ühenda haru funktsioonid
# Sisestage täitmise teade, et selgitada, miks see liitmine on vajalik,
# eriti kui see ühendab uuendatud ülesvoolu teema haruks.
#
# Tähega '#' algavaid ridu ignoreeritakse ja tühi kiri katkestatakse
# pühenduma.

Muuda kommentaare. Sel juhul saate lihtsalt lisada "C4:" enne "Merge filiaali funktsioonide". Väljund peaks välja nägema selline:

„Rekursiivse” strateegia abil tehtud liitmine.
b.txt | 0
c.txt | 0
d.txt | 0
3 faili muudetud, 0 sisestust (+), 0 kustutust (-)
loomisrežiim 100644 b.txt
loomisrežiim 100644 c.txt
loomisrežiim 100644 d.txt

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

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

Näete, et kuigi teil on täpselt samad muudatused, on sellel ühendamise versioonil täiendav C4 kohustus, mis tähistab funktsioonide hargnemist põhihalduriks.

Järeldus

Git merge no-ff lipp aitab luua loetavama ajaloo. See võimaldab teil panna silte, mis näitavad selgelt, kus ühendused toimusid. See võib säästa teie aega ja vaeva silumise ajal.

Edasine uuring:

Viited:
Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...
Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...