Tervetuloa perimmäinen opas git merge
ja git rebase
komennot. Tämä opetusohjelma opettaa sinulle kaiken mitä sinun tarvitsee tietää yhdistämällä useita oksat Git.
Git Merge
git merge
komento yhdistää kaikki muutokset, jotka on tehty koodipohja on erillinen haara nykyisen haara uutena sitoutua.,
– komennon syntaksi on seuraava:
git merge BRANCH-NAME
esimerkiksi, jos olet tällä hetkellä työskentelee haara nimeltä dev
ja haluaisin yhdistää kaikki uudet muutokset, jotka tehtiin haara nimeltä new-features
, voit antaa seuraava komento:
git merge new-features
Huomautus: Jos on olemassa mitään sitovia muutoksia nykyisen haara Git ei anna yhdistää, kunnes kaikki muutokset nykyinen haara on tehty., Käsitellä näitä muutoksia, voit joko:
Luo uusi haara ja tehnyt muutokset,
git checkout -b new-branch-namegit add .git commit -m "<your commit message>"
– Stash niitä
git stash # add them to the stashgit merge new-features # do your mergegit stash pop # get the changes back into your working tree
Hylkää kaikki muutokset,
git reset --hard # removes all pending changes
Git Rebase
Rebasing sivuliikkeen Git on tapa siirtää kokonaisuudessaan haara toiseen kohtaan puussa. Yksinkertaisin esimerkki on oksan siirtäminen kauemmas puuhun., Sanoa, että meidän on haara, joka poikkesivat master haara pisteessä:
/o-----o---o--o-----o--------- branch--o-o--A--o---o---o---o----o--o-o-o--- master
Kun olet rebase voit siirtää sen näin:
/o-----o---o--o-----o------ branch--o-o--A--o---o---o---o----o--o-o-o master
rebase, varmista, että sinulla on kaikki sitoutuu haluat rebase oman master haara. Tutustu haara haluat rebase ja tyyppi git rebase master
(jossa master on haara haluat rebase edelleen)., esimerkiksi haara, joka perustui toinen haara (kutsukaamme se ominaisuus) on rebased master:
/---o-o branch /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master
Jälkeen git rebase master branch
tai git rebase master
kun olet tarkistanut ulos haara, saat:
/---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master \---o-o branch
Git rebase interaktiivinen konsoli
käyttää git rebase
konsoli, jossa on luettelo sitoutuu voit valita, muokata tai lasku rebase:
- Enter
git rebase -i HEAD~5
viimeinen numero on mikä tahansa määrä sitoutuu viimeisimmästä taaksepäin haluat tarkastella., - vim, paina
esc
, niini
aloittaa muokkaamalla testi. - vasemmalla puolella voit korvata
pick
yksi komennot alla. Jos haluat squash sitoutua osaksi edelliseen ja hävitä commit-viesti, kirjoitaf
paikkapick
sekä sitoutua. - Tallenna ja lopeta tekstieditori.
- Kun rebase on lakannut, tehdä tarvittavat säädöt, sitten käyttää
git rebase --continue
kunnes rebase on onnistunut., - Jos se rebases onnistuneesti, sitten sinun täytyy pakottaa työntää muutokset
git push -f
lisää rebased versio remote repository. - Jos on yhdistää konfliktin, on olemassa useita tapoja korjata tämä, mukaan lukien seuraavat ehdotukset tässä oppaassa. Yksi tapa on avata tiedostot tekstieditorissa ja poistaa ne koodin osat, joita et halua. Sitten käyttää
git add <file name>
seuraagit rebase --continue
., Voit ohittaa yli ristiriitainen toimitus kirjoittamallagit rebase --skip
lopeta rebasing käynnissägit rebase --abort
konsoliin.
Merge-Konflikteja
merge-konflikteja on, kun teet sitoutuu erillinen oksat, jotka muuttavat samalla linjalla ristiriitaisia tapoja.,mikä versio tiedosto pitää virhesanoma, joka muistuttaa seuraavaa:
CONFLICT (content): Merge conflict in resumé.txt Automatic merge failed; fix conflicts and then commit the result.
Jos katsotte resumé.txt
tiedosto-koodi editori, voit nähdä, missä konflikti tapahtui:
<<<<<<< HEADAddress: 808 South Street=======Address: 505 North Street>>>>>>> updated_address
Git lisätty joitakin ylimääräisiä rivit tiedostoon:
<<<<<<< HEAD
=======
>>>>>>> updated_address
Git Merge vs Git Rebase
Molempien git merge
ja git rebase
ovat erittäin hyödyllisiä komentoja, ja yksi ei ole parempi kuin muut., On kuitenkin olemassa joitakin erittäin tärkeitä eroja kahden komennon välillä, jotka sinun ja tiimisi tulisi ottaa huomioon.
aina kun git merge
ajetaan, syntyy ylimääräinen yhdistämissitoumus. Kun työskentelet paikallisessa arkistossa, liian monet yhdistämistoimitukset voivat saada commit-historian näyttämään hämmentävältä. Yksi tapa välttää yhdistämisen sitouttaa on käyttää git rebase
sijaan.
git rebase
on erittäin tehokas ominaisuus. On kuitenkin myös riskialtista, jos sitä ei käytetä oikealla tavalla., git rebase
muuttaa toimituksen historiaa, joten käytä sitä varoen. Jos uudelleenpoistaminen tapahtuu etähallinnassa, se voi luoda paljon ongelmia, kun muut kehittäjät yrittävät vetää uusimmat koodimuutokset etähallinnasta. Muista ajaa vain git rebase
paikallisessa arkistossa.
muuta sinun ei tarvitse tietää yhdistyäksesi ja uudelleensijoittuaksesi best of ’EMIn kanssa.