Git

Как да Git Rebase

Как да Git Rebase
git rebase е програма за обединяване, точно като git merge. Но начинът им на работа е различен.

В тази статия ще говоря за това как работи Git rebase, разликите между Git rebase и Git merge и как да работя с Git rebase. И така, нека започнем.

Git Rebase:

Да приемем, че имате Git хранилище с комитите A, Б, ° С в майстор клон. След това създадохте нов клон някакъв клон и добави 2 нови ангажименти д и Е към някакъв клон клон.

Фигура 1: първоначална история на фиксиране.

Да кажем, че сте забравили да добавите нещо в майстор клон. И така, връщате се към майстор клон и добавете нов ангажимент G към майстор клон. Вашата git история трябва да изглежда както следва.

Фигура 2: история на фиксиране след добавяне на фиксиране G в главния клон.

Всичко изглежда добре. Сега, ако искате всички промени, които сте направили в някакъв клон клон да бъде в майстор клон, можете да обедините някакъв клон клон до майстор клон. Ето какво е git сливане направете.

Ами ако искате ангажирането G да бъде на разположение в някакъв клон клон? Е, можете да използвате git rebase за това.

От историята на фиксирането на фиг. 2 можете да видите, че клонът някакъв клон започва от фиксирането ° С. Ако направите git rebase на някакъв клон, тогава ще започне от фиксирането G както е показано на фигура 3 по-долу. Имайте предвид, че съдържанието на фиксацията д и Е ще се промени и след операцията по пребазиране. Ангажиментите д и Е ще включва промените в фиксацията G. Ето защо добавих * символ преди фиксирането д и Е.

Ако искате да знаете как би изглеждала историята на фиксирането, ако я обединя, погледнете фигура 4. Включих го само за да можете да го сравните с git rebase.

Фигура 4: история на фиксиране, ако се използва git merge.

След като вече знаете какво е git rebase, разликата между git rebase и git merge и защо git rebase го използва, ще ви покажа как да го използвате в следващия раздел на тази статия по-долу.

Работен поток на Git Rebase:

В този раздел ще създам ново git хранилище на моя локален компютър и ще ви покажа как работи git rebase. Препоръчвам ви да разберете добре git rebase, преди да го приложите във вашия проект.

Първо, създайте ново хранилище на Git rebase-demo / на вашия компютър, както следва:

$ git init rebase-demo

Сега отидете до rebase-demo / директория, както следва:

$ cd rebase-demo /

Сега създайте нов файл тест.текст както следва:

$ echo "A"> тест.текст

Тестът.txt файлът съдържа само един ред A. Да кажем, това е вашият първоначален код на проекта.

Сега ангажирайте промените, както следва:

$ git add .
$ git commit -m 'A'

Сега добавете още един ред Б към тест.текст файл, както е показано на екранната снимка по-долу.

Сега ангажирайте промените, както следва:

$ git add .
$ git commit -m 'B'

Сега, нека добавим още един ред C към тест.текст файл.

Освен това ангажирайте промените, както следва:

$ git add .
$ git commit -m 'C'

Сега историята на фиксиране на главния клон трябва да изглежда както следва:

$ git log --oneline

Сега, да речем, имате няколко нови идеи, които искате да изпробвате. Така че, нека създадем и направим плащане към нов клон нова функция както следва:

$ git checkout -b нова функция

Сега добавете новата си идея (линията д да кажем) на тест.текст файл.

Сега ангажирайте промените, както следва:

$ git add .
$ git commit -m 'D'

Сега добавете реда E към тест.текст файл.

Ангажирайте промените, както следва:

$ git add .
$ git commit -m 'E'

Сега, историята на фиксиране на нова функция клонът трябва да изглежда както следва:

$ git log --oneline

Вижте как са ангажиментите в ред А < B < C < D < E?

Сега си спомняте, че сте забравили да добавите нещо към майстор клон, в който също сте искали да бъдете в нова функция клон! Така че, плащане до майстор клон.

Добавих нов ред в края на тест.текст файл, както можете да видите.

Сега ангажирайте промените, както следва:

$ git add .
$ git commit -m 'G'

Сега, историята на фиксиране на майстор клон трябва да изглежда така.

A < B < C < G

Сега, за да преосмислите ангажиментите от майстор клон до нова функция клон, първо плащане до нова функция клон.

$ git checkout нова функция

Сега направете git rebase на майстор клон, както следва:

$ git rebase master

Някои конфликти на сливане! Нека поправим това.

Е, промените, които направих в ангажимента G и д са в конфликт помежду си. Искам да запазя и двете.

След отстраняване на конфликта на сливане, тест.текст файлът трябва да изглежда както следва:

Сега добавете промените към подреждането, както следва:

$ git add .

Сега продължете да преработвате, както следва:

$ git rebase --continue

Пореден конфликт на сливане! Е, това може да се случи. Rebase променя историята на git commit. И така, подобни неща се очакват.

Изглежда, че процесът на сливане е неуспешен поради някои празни редове. Нека поправим това.

След отстраняване на конфликта на сливане, тест.текст файлът трябва да изглежда както следва.

Сега добавете промените към подреждането, както следва:

$ git add .

Сега продължете операцията по пребазиране, както следва:

$ git rebase --continue

Git rebase е завършен.

Както можете да видите, историята на фиксиране на клона с нова функция се актуализира. Сега историята на фиксиране е както следва:

A < B < C < G < D < E

Точно както се очакваше.

Финалът тест.текст файлът трябва да изглежда както следва.

Git rebase е мощен инструмент. Но никога не трябва да го използвате в споделени хранилища на Git. Използвайте го само в хранилищата на Git, които работите само. В противен случай ще се сблъскате с много проблеми по пътя.

И така, вие използвате git rebase. Благодаря, че прочетохте тази статия.

Бутонът на левия бутон на мишката не работи в Windows 10
Ако използвате специална мишка с вашия лаптоп или настолен компютър, но бутонът на левия бутон на мишката не работи на Windows 10/8/7 по някаква причи...
Курсорът скача или се движи произволно, докато пишете в Windows 10
Ако установите, че курсорът на вашата мишка скача или се движи самостоятелно, автоматично, произволно, докато пишете в лаптоп или компютър на Windows,...
Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...