Git Rebase: рдЙрдкрдпреЛрдЧ рдЧрд╛рдЗрдб

рд░реАрдмреЗрд╕ рдПрдХ рд╢рд╛рдЦрд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдиреМрд╕рд┐рдЦрд┐рдП рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдиреБрднрд╡реА рдЧрд┐рдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрднреА-рдХрднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдмрджрд▓рд╛рд╡ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрдм рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд░реНрдЬ рдСрдкрд░реЗрд╢рди рдХреА рдЕрдЪреНрдЫреА рдХрдорд╛рди рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рд░реАрдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреА рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рд╕рд┐рджреНрдзрд╛рдВрдд


рддреЛ, рдЪрд▓реЛ рд░рд┐рдмреЗрдЬ рдХреНрдпрд╛ рд╣реИ рдХреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЬреНрдЮрд╛рди рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВред рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЖрдкрдХреА рджреЛ рд╢рд╛рдЦрд╛рдПрдБ рд╣реИрдВ - рдорд╛рд╕реНрдЯрд░ рдФрд░ рдлрд╝реАрдЪрд░ , рджреЛрдиреЛрдВ рд╕реНрдерд╛рдиреАрдп, рдлрд╝реАрдЪрд░ рдХреЛ рд░рд╛рдЬреНрдп A рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдорд┐рдЯ C, D рдФрд░ E. рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВред рдЗрд╕рдореЗрдВ рд╕реЗ рдлрд╝реАрдЪрд░ рдмреНрд░рд╛рдВрдЪ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ 1 рдХрдорд┐рдЯ B рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред ред



рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдореЗрдВ рд░рд┐рдмрд╛рд╕ рдорд╛рд╕реНрдЯрд░ рдСрдкрд░реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдорд┐рдЯ рд╡реГрдХреНрд╖ рдЬреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:



рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реА ', рдбреА' рдФрд░ рдИ 'рдХреЗ рд╕реА, рдбреА рдФрд░ рдИ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрд╢ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреЛ рдмрджрд▓рд╛рд╡ (рдбреЗрд▓реНрдЯрд╛рд╕) рд╡реЗ рдЦреБрдж рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВред рдХрдорд┐рдЯреНрд╕ рдореЗрдВ рдЕрдВрддрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдЖрдзрд╛рд░ рд╣реИ (рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдП, рджреВрд╕рд░реЗ рдореЗрдВ - рдмреА), рдбреЗрд▓реНрдЯрд╛рд╕ рдореЗрдВ рдЕрдВрддрд░, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рддреЛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд░рд┐рдмрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд╣реБрдП рдереЗред рдЗрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рдкрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рд╣реИ, рдЬрдм рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдХреЛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдлрд╛рд╕реНрдЯ-рдлреЙрд░рд╡рд░реНрдб рдореЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдореЗрдВ рдХреЛрдб рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╢рд╛рдЦрд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП рдЦрд╛рддрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдорд╛рд╕реНрдЯрд░ рдЗрди рдХрдорд┐рдЯ рдмреАред

рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд░рд┐рдмреЗрд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛


рдЖрдЗрдП рдЕрдм рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдпрд╛рдВрддреНрд░рд┐рдХреА рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рдкреЗрдбрд╝ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреЗрдбрд╝ 2 рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓ рдЧрдпрд╛?

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд░рд┐рдмрд╛рд╕ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рдлреАрдЪрд░ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рд╣реИрдВ, рдпрд╛рдиреА рдЖрдкрдХрд╛ HEAD рдлреАрдЪрд░ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рдЬреЛ рдХрдорд┐рдЯ рдИ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рдЖрдк рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдХреЗ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рдХреЛ рдХрдорд╛рдВрдб рдореЗрдВ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:

git rebase master

git тАФ . A. HEAD git , A , ╬ФAC. master. , C', C' = B + ╬ФAC. master feature , , HEAD (C'), ┬л ┬╗ (detached HEAD).


C', git тАФ ╬ФCD. , C' . rebase ( , git status , detached HEAD). , ╬ФCD ( ) ( stage-):


:

1. rebase

git rebase --abort

HEAD, feature, ( ) .

2. merge-tool', , git add %filename%. , rebase-

git rebase --continue

, , D' rebase , .

3. , B D , ┬л┬╗ B, git rebase --continue, , . D',

git rebase --skip

╬ФDE E', feature E', HEAD feature тАФ , , rebase . C, D E .


, rebase-, (Author), , rebase (Commiter):

commit 0244215614ce6886c9e7d75755601f94b8e19729
Author:     sloot69 <***@****.com>
AuthorDate: Mon Nov 26 13:19:08 2012 +0400
Commit:     Alex <***@****.com>
CommitDate: Mon Nov 26 13:33:27 2012 +0400


тАФ rebase


, : master, origin/master, feature origin/feature. rebase origin-, feature origin/feature, feature master.

Rebase origin-


rebase, . , , , - merge. :



тАФ 3 master . 1 . . git push origin master, , . (2 3) git pull origin master, merge- . git push . git pull, merge-. , git push origin master. github, network, :

6 ( ), , , , . , , , :



. rebase?
git pull origin master git pull --rebase origin master, , C, D E origin/master, git push origin master. :



, ┬л┬╗ merge- , C C'. C , C'. git pull --rebase, .

, rebase


rebase- master . , rebase . , merge, (master). rebase . , ? push , fast-forward, , , :


, :

git push origin feature --force

Force- feature origin , .

! , force-push , . , . , origin-. , тАФ . тАФ , . push, origin. , .

, pull, push. feature origin/feature . git pull origin feature, merge. , . :

git pull --rebase origin feature

feature .
git pull --rebase origin feature тАФ , rebase , fast-forward.

master


rebase. master git merge feature. , rebase- master fast-forward, .

, тАФ merge fast-forward , , , . тАФ merge --no-ff. merge-, master, тАФ feature. , fast-forward () c merge-, --no-ff ():

, , merge- . , .


, , .

git rebase , , , merge- , rebase ( -, ) , , , git pull --rebase.

. тАФ master , . , rebase- . .

, merge rebase . , , . , . rebase-, . , , rebase .

PS. , , .

Source: https://habr.com/ru/post/In161009/


All Articles