Vítejte na našich ultimate guide git merge
git rebase
příkazy. Tento tutoriál vás naučí vše, co potřebujete vědět o kombinaci více větví s Git.
Git Merge
git merge
příkaz sloučit všechny změny, které byly provedeny základní kód na samostatnou větev do vaší aktuální větve jako nový commit.,
syntaxe příkazu je následující:
git merge BRANCH-NAME
například, pokud jste v současné době pracuje v pobočce jménem dev
a chtěli byste sloučit všechny nové změny, které byly provedeny v pobočce jménem new-features
, tak bys vydat následující příkaz:
git merge new-features
Poznámka: Pokud tam jsou nějaké nepotvrzené změny na vaší aktuální větve, Git nebude vám umožní sloučit, dokud se všechny změny ve vaší aktuální větvi byly spáchány., Zvládnout tyto změny, můžete buď:
Vytvořit novou větev a potvrdit změny
git checkout -b new-branch-namegit add .git commit -m "<your commit message>"
Stash je
git stash # add them to the stashgit merge new-features # do your mergegit stash pop # get the changes back into your working tree
Opustit všechny změny
git reset --hard # removes all pending changes
Git Rebase
Rebasing pobočku v Git je způsob, jak se pohybovat v rozsahu pobočky na jiné místo ve stromu. Nejjednodušším příkladem je posunutí větve dále do stromu., Řekněme, že máme pobočky, které se rozcházely z hlavní větve v bodě A:
/o-----o---o--o-----o--------- branch--o-o--A--o---o---o---o----o--o-o-o--- master
Pokud jste rebase můžete jej přesunout takhle:
/o-----o---o--o-----o------ branch--o-o--A--o---o---o---o----o--o-o-o master
rebase, ujistěte se, že máte všechny zavazuje chcete v rebase ve své hlavní větvi. Podívejte se na větev, kterou chcete rebase a typ git rebase master
(kde master je větev, kterou chcete rebase)., že například větev, která byla založena na jinou větev (řekněme, že je to funkce) je rebased na master:
/---o-o branch /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master
Po git rebase master branch
nebo git rebase master
když máte odhlásila pobočku, dostanete:
/---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master \---o-o branch
Git rebase v interaktivní konzoli
použití git rebase
v konzoli se seznamem commitů, můžete si vybrat, editovat, nebo pokles v rebase:
- Enter
git rebase -i HEAD~5
s poslední číslo je libovolný počet commitů od poslední zpět, které chcete zkontrolovat., - ve vim stiskněte
esc
, potéi
pro zahájení úpravy testu. - na levé straně můžete přepsat
pick
jedním z níže uvedených příkazů. Pokud chcete squash odevzdání do předchozí a zlikvidujte spáchat zpráva, zadejtef
místopick
odevzdání. - Uložte a ukončete textový editor.
- když je rebase zastavena, proveďte potřebné úpravy a poté použijte
git rebase --continue
, dokud nebude rebase úspěšná., - Pokud je rebases úspěšně, pak budete muset nutit tlačit své změny s
git push -f
přidat rebased verze do vzdáleného úložiště. - pokud dojde ke konfliktu sloučení, existuje řada způsobů, jak to opravit, včetně následujících návrhů v této příručce. Jedním ze způsobů je otevření souborů v textovém editoru a odstranění částí kódu, který nechcete. Poté použijte
git add <file name>
následovanégit rebase --continue
., Můžete přeskočit konfliktní dopustit zadánímgit rebase --skip
, přestat rebasing spuštěnímgit rebase --abort
v konzoli.
sloučit konflikty
konflikt sloučení je, když provedete commity na samostatných větvích, které mění stejný řádek konfliktními způsoby.,kterou verzi souboru chcete zachovat chybová zpráva podobná následující:
CONFLICT (content): Merge conflict in resumé.txt Automatic merge failed; fix conflicts and then commit the result.
Pokud se podíváte na resumé.txt
soubor v editor kódu, můžete vidět, kde konflikt se konal:
<<<<<<< HEADAddress: 808 South Street=======Address: 505 North Street>>>>>>> updated_address
Git přidal některé další řádky do souboru:
<<<<<<< HEAD
=======
>>>>>>> updated_address
Git Merge vs Git Rebase
git merge
git rebase
jsou velmi užitečné příkazy, a jeden není lepší než druhý., Existují však některé velmi důležité rozdíly mezi těmito dvěma příkazy, které byste měli vy a váš tým vzít v úvahu.
kdykoli se spustí git merge
, vytvoří se další odevzdání sloučení. Kdykoli pracujete v místním úložišti, příliš mnoho commitů sloučení může způsobit, že historie odevzdání bude matoucí. Jedním ze způsobů, jak se vyhnout odevzdání sloučení, je místo toho použít git rebase
.
git rebase
je velmi výkonná funkce. Jak již bylo řečeno, je také riskantní, pokud se nepoužívá správným způsobem., git rebase
mění historii odevzdání, proto ji používejte opatrně. Pokud se rebasing provádí ve vzdáleném úložišti, může vytvořit spoustu problémů, když se ostatní vývojáři pokusí vytáhnout nejnovější změny kódu ze vzdáleného úložiště. Nezapomeňte spustit pouze git rebase
v lokálním úložišti.
to je vše, co potřebujete vědět, abyste se spojili a přeskupili s nejlepšími z nich.