рдореИрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдХрднреА-рдХрднреА рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЬреЛ "рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред"
рдкрд╣рд▓реЗ рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рд╕рдВрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕реЛрдЪрд╛, рд▓реЗрдХрд┐рди рд╣рд░ рдЪреАрдЬ рдХрд╛ рдЕрдкрдирд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреЛрдИ рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдереЛрдбрд╝рд╛-рдереЛрдбрд╝рд╛ рдХрд░рдХреЗ ...
рдЗрд╕рд▓рд┐рдП ...
рдХрдо рд╕реЗ рдХрдо рджрд░реНрдж рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреА рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдорд┐рд▓рд╛рдПрдВ
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ред рдПрдХ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ ( master
) рд╣реИ, рдЬреЛ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ; рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ feature
рд╢рд╛рдЦрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рдирд┐рд░реНрд╡рд╛рдг рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд░рд╡рд╛рдирд╛ рд╣реБрдП, рдФрд░ рдлрд┐рд░ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЗ рдЕрдм рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдереЗ, рдФрд░ "рдорд╛рдереЗ рдкрд░" (рд╕рд┐рд░ рд╕реЗ рд╕рд┐рд░) рд╡рд┐рд▓рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА nontrivial рдерд╛ред
(рд╣рд╛рдВ, рдпрд╣ рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рдЕрдкрд░рд╛рдз рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рдмрдЪреНрдЪреЗ рд╣рдореЗрд╢рд╛ рдЖрдЬреНрдЮрд╛рдХрд╛рд░реА рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрдиреА рдорд╛рдВ рдХреЗ рд╕рд╛рде рд╣рд╛рде рд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рд╕рдбрд╝рдХ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдзреНрдпрд╛рди рд╕реЗ рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ)ред
рдЙрджреНрджреЗрд╢реНрдп: рдХреНрд░реЛрдзрд┐рдд рд╣реЛрдирд╛ред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рддрд╛рдХрд┐ рдпрд╣ рдПрдХ "рд╢реБрджреНрдз" рдорд░реНрдЬ рдерд╛, рдмрд┐рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗред рдпрд╛рдиреА рддрд╛рдХрд┐ рд╢рд╛рдЦрд╛ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдВрдбрд╛рд░ рдореЗрдВ, рджреЛ рдзрд╛рдЧреЗ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ "рд╡рд┐рд▓рдпрд┐рдд рд╢рд╛рдЦрд╛ 'рдорд╛рд╕реНрдЯрд░' рдлреАрдЪрд░ рдореЗрдВ" рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реЛрдВред рдФрд░ рдкреВрд░реЗ "рдпрд╣ рдПрдХ" рд╕рд┐рд░рджрд░реНрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рд▓реЗрддрд╛ рд╣реИ, рдХрд┐рддрдиреЗ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХрд┐рддрдирд╛ рдмрд╛рд▓ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рджрд╛рдЧ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХрдерд╛рдирдХред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЧрд┐рдЯ рдореЗрдВ рдЖрдк рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдз рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - --amend
рдЬрд╛рдирддреЗ рд╣реИрдВред рдЪрд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ "рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдз" рдХрд╣реАрдВ рднреА рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ "рд░реИрдЦрд┐рдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдз" рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╡реЗ рдЯрд╛рдЗрдкреЛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдпрд╛ "рдСрдХреНрдЯреЛрдкрд╕" рдорд░реНрдЬ рд╕реЗ рднреА рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрдВред --amend
рд╕рд┐рд░реНрдл рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд░реЛрд▓ --amend
рдФрд░ рдкреЗрдбрд╝ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд --amend
"рдПрдореНрдмреЗрдб" рдХрд░реЗрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдИрдорд╛рдирджрд╛рд░ рд╡рд┐рд▓рдп рдФрд░ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, git merge
рдФрд░ git commit --amend
" git commit --amend
рдкреНрд▓реЗрд╕" ("рдЯреНрд░реА рдореЗрдВ рдпрд╣ git commit --amend
рдпрд╣рд╛рдВ рд╣реЛрдЧрд╛") рдФрд░ рдХрдорд┐рдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдЯрд┐рд▓ рдорд░реНрдЬ рдХрдорд┐рдЯ рдХрд╛ рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рд╣реИ: рдкрд╣рд▓реЗ рд╣рдо рдПрдХ "рдПрдХ рдЬрдЧрд╣ рдмрдирд╛рддреЗ рд╣реИрдВ" рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдорд░реНрдЬ рдХрдорд┐рдЯ (рд╕рд╛рдордЧреНрд░реА рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛) рдмрдирд╛рдХрд░, рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ --amend
рд╕рд╛рде рдлрд┐рд░ рд╕реЗ --amend
, рдЬрд┐рд╕рд╕реЗ рд╕рд╛рдордЧреНрд░реА "рд╕рд╣реА" рдмрди рдЬрд╛рддреА рд╣реИред
"рдПрдХ рдЬрдЧрд╣ рдЧреЛрд▓реА рдорд╛рд░реЛред" рдпрд╣ рдПрдХ рд╡рд┐рд▓рдп рдХреА рд░рдгрдиреАрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рд╕рдВрдШрд░реНрд╖ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рд╢реНрди рдирд╣реАрдВ рдкреВрдЫреЗрдЧрд╛ред
git checkout feature git merge master -s ours
рдЕрд░реЗ рд╣рд╛рдБред рд╡рд┐рд▓рдп рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдлреАрдЪрд░ рд╣реЗрдб рд╕реЗ "рдмреИрдХрдЕрдк" рд╢рд╛рдЦрд╛ рдмрдирд╛рдИ рдЬрд╛рдПред рд╕рдм рдХреЗ рдмрд╛рдж, рдХреБрдЫ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд▓рдп рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ ... рд▓реЗрдХрд┐рди рдЗрд╕реЗ 2 рд╡реЗрдВ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╣реЛрдиреЗ рджреЗрдВ, рди рдХрд┐ 0 рд╡реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдЧреИрд░-рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдлрд╝реАрдЪрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдорд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рдХрд┐рд╕реА рднреА "рдЧрдВрджреЗ рд╣реИрдХ рдХреЗ рдмрд╛рд╡рдЬреВрджред" рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрд░реАрдХрд╛ рдЖрдЦрд┐рд░реА рд╡рд┐рд▓рдп рдХреЗ рдХреНрд╖рдг рд╕реЗ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреЛ рджреЗрдЦрдирд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдПрдХ рдЬрдЧрд╣ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдХреЛ рд╕рд╣реА рдХрд░рдирд╛ - рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ (рдХрдИ рдлрд╛рдЗрд▓реЗрдВ) рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЗрдХрд╛рдИ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ - рдПрдХ рд╕рдорд╕реНрдпрд╛ рдПрдХ, рдЖрджрд┐)ред рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╣рдо рдирдИ рд╢рд╛рдЦрд╛рдПрдБ рдмрдирд╛рддреЗ рд╣реИрдВ (рдореИрдВ рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ - рдорд╛рд╕реНрдЯрд░ 1, рдорд╛рд╕реНрдЯрд░ 2, рдорд╛рд╕реНрдЯрд░ 3, рдЖрджрд┐)ред рдФрд░ рдлрд┐рд░ рд╣рдо рд╢рд╛рдЦрд╛ рджреНрд╡рд╛рд░рд╛ рд╢рд╛рдЦрд╛ рдХрд╛ рд╡рд┐рд▓рдп рдХрд░рддреЗ рд╣реИрдВ, рдкреБрд░рд╛рдиреЗ рд╕реЗ рддрд╛рдЬрд╛ рдФрд░ рд╕рд╣реА рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВ (рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╕реНрд╡-рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВ)ред рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВ (рдореИрдВ рдПрдХ рдЬрд╛рджреВрдЧрд░ рдирд╣реАрдВ рд╣реВрдВ; рдореИрдВ рд╕рд┐рд░реНрдл рд╕реАрдЦ рд░рд╣рд╛ рд╣реВрдВ; рдореБрдЭреЗ рд░рдЪрдирд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреА!)ред рдЕрдВрдд рдореЗрдВ, рдЦрд░реНрдЪ (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдирд┐рдпрдорд┐рдд рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдХреБрдЫ рдШрдВрдЯреЗ (рдЬреЛ рдХрдирд┐рд╖реНрда рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЬрдЯрд┐рд▓ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рд╣реИ), рд╣рдореЗрдВ рдХреЛрдб рдХреА рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдорд┐рд▓рддреА рд╣реИ: рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рд╕рднреА рдирд╡рд╛рдЪрд╛рд░реЛрдВ / рдлрд┐рдХреНрд╕ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдХреЛрдб рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛, рдЖрджрд┐ред рдПрдХ рд╕рдлрд▓ рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
"рд╕рдлрд▓рддрд╛ рдХреА рдХрд╣рд╛рдиреА" рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдЬрд╣рд╛рдВ "рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ", рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд▓рд╛рдПрдВ:
git tag mp git checkout mp git reset feature git checkout feature git tag -d mp
(рдореИрдВ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реВрдВ: (рдПрдордкреА - рдорд░реНрдЬ рдкреЙрдЗрдВрдЯ) рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП HEAD рд╕реНрдерд┐рддрд┐ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рд╕реЗ рдЗрд╕реЗ рд╣рдорд╛рд░реА рд╢рд╛рдЦрд╛ рдХреЗ рдкреНрд░рдореБрдЦ рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдлрд░реНрдЬреА рдорд░реНрдЬ рдХрдореЗрдЯреА рджреНрд╡рд╛рд░рд╛ "рд╕реНрдЯреЗрдХ рдЖрдЙрдЯ" рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЯреИрдЧ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ)ред рдЕрдм рд╣рдо рдореВрд▓ "рд╢реБрджреНрдз" рдорд░реНрдЬ рдХрдорд┐рдЯрдореЗрдВрдЯ рдкрд░ рд╣реИрдВ; рдХрд╛рдо рдХреА рдХреЙрдкреА рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рд╕рд╣реА" рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИред рдЕрдм рдЖрдкрдХреЛ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧреИрд░-рдордВрдЪрд┐рдд рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦреЗрдВ (рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдирдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреА)ред рд╣рдо рд╡рд╣рд╛рдВ рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЕрдВрдд рдореЗрдВ, рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЕрдкрдиреА рд╕рд╣реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЛ рдЖрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рдореЗрдВ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ:
git commit --amend
рд╣реБрд░реНрд░реЗ! рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛! рдЖрдк рд▓рд╛рдкрд░рд╡рд╛рд╣реА рд╕реЗ рдПрдХ рд╢рд╛рдЦрд╛ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдВрдбрд╛рд░ рдореЗрдВ рдзрдХреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдорд░реНрдЬ рдХреЗ рдХрд╛рдо рдХрд╛ рдЖрдзрд╛ рджрд┐рди рдмрд┐рддрд╛рдпрд╛ рдерд╛ред
рдЕрдкрдбреЗрдЯ: рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рддрд░реАрдХрд╛
рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рддреАрди рдорд╣реАрдиреЗ рдмрд╛рдж, рд▓реЗрдЦ " рдХреИрдкрд┐рдЯрд▓ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЗрдбрд╝реЛрдВ рдХреЛ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдЪреБрд░рд╛рдирд╛ рд╣реИ "
рдЙрд╕рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рдХреЛ рдЫреЛрдЯреЗ рддрд░реАрдХреЗ рд╕реЗ рдФрд░ рд╕рд╣рд╛рдпрдХ рддрдВрддреНрд░ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: "рдкреЛрд╕реНрдЯ рд╕реНрдкреЗрд╕" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд░реАрд╕реЗрдЯ рдХреЗ рдмрд╛рдж рдЕрд╕реНрдерд┐рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рд╕рдВрд╢реЛрдзрди рдХрд░реЗрдВ; рдЖрдк рдПрдХ рдЪрд░рдг рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпрдХреНрд╖ рдорд░реНрдЬ рдХрдорд┐рдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдкреИрд░рд╛ 2 рдореЗрдВ рд╣реИ)ред рдЬреБрдП рдХреА рдордзреНрдпрд╡рд░реНрддреА рдХрд╣рд╛рдиреА рдФрд░ рд╣реИрдХ рдЕрднреА рднреА рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред рдФрд░ рдлрд┐рд░, рдХреНрд▓реЗрдо 3 рдХреЗ рдмрдЬрд╛рдп, рдорд░реНрдЬ рдХрдорд┐рдЯ рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде, рд╣рдо рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдорд░реНрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдореЗрдВ рд╣реИ:
git tag mp git checkout feature git merge --ff $(git commit-tree mp^{tree} -m "merged branch 'master' into 'feature'" -p feature -p master) git tag -d mp
рдпрд╣рд╛рдВ рд╕рднреА рдЬрд╛рджреВ рдПрдХ рдЪрд░рдг рдореЗрдВ рддреАрд╕рд░реЗ рдЖрджреЗрд╢ (рдЧрд┐рдЯ рдХрдо-рдЯреНрд░реА) рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЪреБрдиреЗрдВ
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛: рдлрд╝рд╛рдЗрд▓ рдПрдиреНрдХреЛрдбреЗрдб-рдПрдиреНрдХреЛрдбреЗрдб рдереА, рдФрд░ рдЕрдВрдд рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛, рддрд╛рдХрд┐ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рднреА рдзреАрдорд╛ рд╣реЛрдиреЗ рд▓рдЧреЗ, рдЗрд╕реЗ рдкрдЪрд╛рдиреЗ (JetBrains рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред (рд╣рд╛рдВ, рд╣рдо "рдЕрдкреВрд░реНрдг" рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЧрдП рд╣реИрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣)ред
рд╕реНрдорд╛рд░реНрдЯ рджрд┐рдорд╛рдЧреЛрдВ рдиреЗ рдХрдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рд╕реЛрдЪрд╛, рд╕реЛрдЪрд╛ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди! рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ - рдпрд╣ рдЧрд┐рдЯ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдИ рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреАред рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдЗрддрд┐рд╣рд╛рд╕ рдЦреЛрдЬ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ "рдпрд╣ рдЕрдХреНрд╖рдо рд╡реНрдпрдХреНрддрд┐ рдХрд╣рд╛рдБ рд╣реИ?" рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдиреЗ рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдЭрд╛ рдХреА рд╣реИред рдФрд░ рдореВрд▓ рд╕реНрд░реЛрдд рдХреЛ "рджрдорди рдХреЗ рд▓рд┐рдП" рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдвреВрдВрдврдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд░реЗрдЦрд╛ рдХреНрдпреЛрдВ рдмрджрд▓реА рдЧрдИ рдереА; рдпрд╣ рдХрд┐рд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ)ред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирдИ рд╣реЛ, рд▓реЗрдХрд┐рди рдЙрд╕реА рд╕рдордп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреВрд░рд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЕрднреА рднреА рдмрдирд╛ рд╣реБрдЖ рд╣реИ!
рдХрдерд╛рдирдХред рдХреБрдЫ рдХрд╖реНрдЯрдкреНрд░рдж рдмрдврд╝рдд рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ file.txt
рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдореИрдВ file2.txt
рдореЗрдВ рдПрдХ рднрд╛рдЧ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ file2.txt
ред (рдФрд░ рдЕрднреА рднреА рдХрд╣рд╛рдиреА рд░рдЦрддреЗ рд╣реИрдВ, рд╣рд╛рдБ)ред рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рдЪрд▓рд╛рдПрдВ:
f=file.txt; f1=file1.txt; f2=file2.txt cp $f $f2 git add $f2 git mv $f $f1 git commit -m"split $f step 1, converted to $f1 and $f2"
рдирддреАрдЬрддрди, рд╣рдо рдлрд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ file1.txt
рдФрд░ file2.txt
ред рд╡реЗ рджреЛрдиреЛрдВ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рд╣реА рдХрд╣рд╛рдиреА рд╣реИ (рдЕрд╕рд▓реА; рдореВрд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣)ред рд╣рд╛рдВ, рдореВрд▓ file.txt
рдХрд╛ рдирд╛рдо file.txt
рдкрдбрд╝рд╛; рдпрд╣ "рдереЛрдбрд╝рд╛ рдХрд╖реНрдЯрдкреНрд░рдж" рдмрдврд╝рдд рдкреНрд░рднрд╛рд╡ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдХрд╣рд╛рдиреА рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрджрд┐ рдХреЛрдИ рднреА рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ!)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдм рдХреБрдЫ рд╕рд╣рди рдХрд░реЗрдЧрд╛; рдЕрдм рдХреЛрдИ рднреА рдПрдХ рдЕрд▓рдЧ рдХрдорд┐рдЯ рдореЗрдВ рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рддрд╛:
git mv $f1 $f git commit -m"split finish, rename $f1 to $f"
рдЕрдм file2.txt
рдЧрд┐рд▓реНрдЯ рдореВрд▓ рдлрд╛рдЗрд▓ рдХреА рддрд░рд╣ рд╣реА рд▓рд╛рдЗрди рд╣рд┐рд╕реНрдЯреНрд░реА рджрд┐рдЦрд╛рдПрдЧрд╛ред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрди рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдорд░реНрдЬ рди рдХрд░реЗрдВ (рдЕрдиреНрдпрдерд╛ рд╕рднреА рдЬрд╛рджреВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ; рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА!)ред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХреЛрдИ рднреА рдЕрд▓рдЧрд╛рд╡ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реАрдзреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдмрд╛рдж рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд┐рдЯ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдФрд░ рд╣рд╛рдБ, рдЖрдк рдПрдХ рд╕рд╛рде рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдиреБрд╕реНрдЦрд╛ рдХрд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ: рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдЙрд╕реА рдХрдорд┐рдЯ рдореЗрдВ рджреВрд╕рд░реЗ рдореЗрдВ рд░рдЦреЗрдВ, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдХреЙрдкреА (рдкреНрд░рддрд┐рдпрд╛рдВ) рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬреАрдиреЗ рджреЛ (рдпрд╣ рдЙрд▓реНрдЯрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдХрднреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реЛрдЧреА)ред
рдЕрджреНрдпрддрди: рд▓рд┐рд╕реНрд╕реЛрд╡ рд╕реЗ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА
рдЗрддрд┐рд╣рд╛рд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рднрд╛рдЧ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ
рдЖрдк рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реИрдВред рдХрд╛рд░реНрдп рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред (рдореИрдВрдиреЗ рдХрдИ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд╡рд┐рдХрд▓реНрдк рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╛ рддреЛ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдПрдХ рдореЗрдВ рдмрджрд▓ рджреЗрдВ, рдпрд╛ рдлрд┐рд░ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдПрдВред)
рдорд╣рддреНрд╡рдкреВрд░реНрдг! рд╕рднреА рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ git mv
рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЧрд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдЦреЛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдмрд╛рд╣рд░ рд▓реЗ:
git filter-branch --prune-empty --subdirectory-filter "{directory}" [branch]
{рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛} рдЕрд▓рдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдлреЛрд▓реНрдбрд░ рд╣реИред рдирддреАрдЬрддрди, рд╣рдо рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рд╛рде рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдмрджреНрдз рдореЗрдВ, рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдХреЗрд╡рд▓ рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХрдорд┐рдЯреНрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛, - рдЕрдкреНрд░рддреНрдпрдХреНрд╖-рдЦрд╛рд▓реА рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
рдЕрдм рдореВрд▓ рдмрджрд▓реЗрдВ:
git remote set-url origin {another_repository_url}` git checkout move_from_Repo_1
рдпрджрд┐ рджреВрд╕рд░рд╛ рднрдВрдбрд╛рд░ рд╕рд╛рдл рд╣реИ, рддреЛ рдЖрдк рд╕реАрдзреЗ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкрд╛рд╕ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЦреИрд░, рдзрдХреНрдХрд╛:
git push -u move_from_Repo_1
рд╕рдВрдкреВрд░реНрдг рд╕реНрдирд┐рдкреЗрдЯ (рдЖрд╕рд╛рди рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП):
directory="directory_to_extract"; newurl="another_repository_url" git filter-branch --prune-empty --subdirectory-filter "$directory" git remote set-url origin "$newurl" git checkout move_from_Repo_1 git push -u move_from_Repo_1
рджреЛ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЛ рдПрдХ рд╕рд╛рде рдорд┐рд▓рд╛рдПрдВ
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ 2 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдФрд░ brunches move_from_Repo_1
рдФрд░ move_from_Repo_2
, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЖрдкрдиреЗ git mv
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╣рд╛рдВ рд╡реЗ рдорд░реНрдЬ рдХреЗ рдмрд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдм рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ:
br1="move_from_Repo_1"; br2="move_from_Repo_2" git checkout master git merge origin/$br1 --allow-unrelated-histories git merge origin/$br2 --allow-unrelated-histories git push
рдкреВрд░реА рдЪрд╛рд▓-рдЪрд▓рди-рдЕрд╕рдВрдмрджреНрдз-рдЗрддрд┐рд╣рд╛рд╕ рд╣реИред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкреВрд░реНрдг рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рднрдВрдбрд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИред