Git on hajutatud versiooni juhtimissüsteem - tööriist failide komplekti tehtud muudatuste jälgimiseks või aja jooksul töö koordineerimiseks. Programmeerijad kasutavad seda sageli tarkvara lähtekoodi ja parima osa muutuste kooskõlastamiseks; seda saab kasutada igasuguse sisu jälgimiseks. See on spetsiaalselt loodud käitlema kõike alates väikestest kuni suuremahuliste projektideni, millel on ülim kiirus ja tõhusus. See on äärmiselt paindlik, mis tähendab, et inimesed saavad jagada tööd otse oma isiklike hoidlate vahel ja rühmad saavad oma töövooge koordineerida keskse hoidla kaudu. See võimaldab kahel erinevas kohas istuval arendajal iseseisvalt muudatusi teha ja salvestada, ilma keskse hoidlata.

Ühendamine on Gitis levinud tava, mida kasutatakse muutuste integreerimiseks ühest harust teise. Git ühendamine on käsk, mis viib muudatused teise kohta. See võimaldab arendajatel võtta oma iseseisvad koodiridad, mille on loonud Giti haru, ja integreerida need ühte haru. See muudab ainult sihtharu, kuni lähteharu ajalugu jääb alles. Git rebase on järjekordne käsk, mida kasutatakse põhimõtteliselt samal eesmärgil, kuid see teeb seda üsna erinevalt. Nad mõlemad teevad ühte ja sama asja - ühendavad kohustusi ühest harust teise, kuid erinevus seisneb selles, kuidas nad seda teevad. Toome välja mõned peamised eristavad punktid, võrreldes neid kahte.

Mis on Git Merge?

Git-ühendamine on käsk, mis ühendab kaks või enam ajaloo haru. Ühendamine ühendab sageli vaid kahte haru, ehkki Git toetab kolme, nelja või enama haru ühendamist korraga. Git-ühendamine kasutab Git pull ühendamaks muudatusi ühest harust teise või kokku teise hoidlaga. Ühendamine peab toimuma ühes hoidlas, see tähendab, et kõik ühendatavad harud peaksid asuma samas hoidlas. Ühendamisolukorrad tulenevad tavaliselt kahest või enamast kasutajast, kes üritavad värskendada ühist koodi. Tavaliselt ühendab kasutaja haru teises keskkonnas oma kohaliku hoidla teise haruga. Git-merge integreerib konkreetselt lähteharu sisu sihtharuga. Sihtharu muudetakse, kuni lähteharu jääb.

Mis on Git Rebase?

Giti ümberarvutamine on veel üks alternatiiv ühendamiseks, mida kasutatakse teise haru integreerimiseks haruga, kus te praegu töötate, välja arvatud see, et see hoiab lineaarset sidumisajalugu. Giti rebase eesmärk on viia haru ühest asukohast teise. Kuna kohustused on muutumatud, ei saa neid teisaldada, nii et see eeldab uute muudatuste tegemist samade muudatuste ja metaandmetega. Uuenduspõhimõte muudab põhimõtteliselt ettekujutust sellest, millal ja kus on välja töötatud kohustuste jada, mille tagajärjel kaotavad arenguajaloo mõned aspektid. See tähendab, et algset kohustust, millel arendus algselt põhines, muudetakse. Ajaloo ümberkirjutamisega hõlmab see tõhusalt kõiki uusi kaptenite haruid. Selle tulemusel loob see uusi kohustusi iga algse haru kohustuse jaoks.

Git Rebase'i ja ühendamise erinevus

  1. Git Rebase'i ja ühendamise alused

- Ehkki nii ühendamine kui ka taasalustamine on Giti muudatuste integreerimise kõige levinum viis ja neil on sama eesmärk - ühendada mitu haru üheks -, seisneb erinevus selles, kuidas nad selle saavutavad. Git merge ühendab lähteharu sisu sihtharuga, säilitades samal ajal iga pärimisajaloo järeltulud, samas kui Git rebase ühendab kõik uued harude peaülesanded, kirjutades ümber ajaloo, luues lähtekoodide haru igale uuele kohustusele .

  1. Git Rebase'i ja ühendamise töö

- Ühendamisega Git vahetate esmalt ühendatava haru ja kasutate seejärel ühendamiskäsku ühendatava haru valimiseks. Arvestades, et haru osutab kohustusele ja et kohustus on granulaarsus, millega teie seostate, muutub, ühendav käsk ühendab haru või pühendumise tasandil. Rebase on seevastu natuke erinev. Esmalt valite haru, mida hakatakse taasalustama, ja seejärel kasutage käsu rebase, et valida, kuhu see panna.

  1. Git Rebase'i ja ühendamise eesmärk

- Ühendamine loob uue kohustuse, mis tähistab kahe haru ühendamist. See ühendab muutused erinevatest paralleelsetest arengusuundadest (harudest) kokku, luues liitmiskohustuse. Selle eesmärk on ühendada kaks või enam haru koos, sealhulgas kõik muudatused alates praeguse haru lahknemise kohast. Edasiliikumine on Giti vaikimisi ühendamiskäitumine. Rebasing seevastu muudab individuaalseid kohustusi projekti ajaloo ümberkirjutamise teel, luues igale algses harule uued kohustused, mis omakorda annab lineaarse ajaloo, millel pole lahknevaid harusid.

  1. Git Rebase'i ja ühendamise ajalugu

- Git-liitmine ei muuda ajalugu, säilitades samas haru konteksti, mis tähendab, et olemasolevaid harusid ei muudeta mingil moel. See loob uue kohustuse (välja arvatud juhul, kui tegemist oli kiire edasiliikumisega), kuid kohustused jäävad filiaalilt kättesaadavaks. Git rebase seevastu sujuvamaks muudab potentsiaalselt keeruka ajaloo. Kohustused kirjutatakse ümber, vanad versioonid unustatakse ja muudatuste DAG-i muudetakse. Kohustused ei ole enam saavutatavad, kasutades uuesti baasi, mis tähendab, et te ei saa enam avaldatud harusid uuesti hajutada.

Rebase vs Merge: võrdlusdiagramm

Git Rebase Vs kokkuvõte Ühenda

Lühidalt, nii ühendamine kui ka ümbersuunamine on kaks viisi Giti muudatuste integreerimiseks, kuid nad erinevad selle poolest, kuidas nad seda teevad. Ühendamine on üheastmeline operatsioon ühes kohas konfliktide lahendamiseks ja haru kaudu saavutatavad kohustused jäävad juurdepääsetavaks. Rebase seevastu rakendab iga kohustust individuaalselt, kirjutades ümber ajaloo, luues igale allikaringis uuele kohustusele. Niisiis, see, mis kunagi oli juurdepääsetav, pole enam juurdepääsetav. Referaas muudab põhimõtteliselt ettekujutust sellest, millal ja kus välja töötati kohustuste jada.

Viited

  • Piltkrediit: https://commons.wikimedia.org/wiki/File:Mergevsrebase.png
  • Kujutise krediit: https://www.flickr.com/photos/appleboy/5488984566
  • Narebski, Jakub. Giti valdamine. Birmingham: Packt Publishing, 2016. Trükk
  • Loeliger, Jon ja Matthew McCullough. Giti versioonikontroll. Sebastopol, California: O'Reilly Media, 2012. Trükk
  • Laster, Brent. Professionaalne Git. Hoboken, New Jersey: John Wiley & Sons, 2016. Trükk
  • Silverman, Richard E. Git Taskujuhend: toimiv sissejuhatus. Sebastopol, California: O'Reilly Media, 2013. Trükk