рд╕рдореГрджреНрдз рдЧрд┐рдЯ-рдорд░реНрдЬ рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпрд╛рдВ

рдЙрджреНрдШрд╛рдЯрди рдЯрд┐рдкреНрдкрдгреА


рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ "рд╣рддреНрдпрд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ" SLE Git рдПрдХ рд╣рд▓реНрдХреА рд╢рд╛рдЦрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рд▓рд╛рдн рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдПрд╕рд╡реАрдПрди рдХреЗ рд╕рд╛рде рдЧрд┐рдЯ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдХрд╛рдлреА рдорд╣рдВрдЧреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдереА: рдПрдХ рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреВрд░реА рдХрд╛рдордХрд╛рдЬреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред Git рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ: рдПрдХ рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХреЗрд╡рд▓ рдПрдХ рдирдпрд╛ рд╕реВрдЪрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд┐рдЯред .git/refs/heads рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдЬреЛ рдХрд┐ 40 рдмрд╛рдЗрдЯреНрд╕ рдСрдлрд╝ рдЯреЗрдХреНрд╕реНрдЯ, рдПрдХ рдХрдорд┐рдЯ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИред

Git рдореЗрдВ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕реНрддрд░реАрдп рдХрдорд╛рдВрдбреНрд╕ git-branch, git-checkout, git-rebase, git-log рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, git-merge рд╣реИрдВред рдЦреБрдж рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рдХреНрд╖реЗрддреНрд░, рд╡рд┐рд╢рд╛рд▓ рдЬрд╛рджреБрдИ рдКрд░реНрдЬрд╛ рдФрд░ рдорд╣рд╛рди рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдорд░реНрдЬ-рдорд░реНрдЬ рдорд╛рдирддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рдЯреАрдо рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдлреА рд▓рдВрдмрд╛ рдЕрдиреБрднрд╡ рдХрднреА-рдХрднреА рдЕрдкрдиреА рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЖрдЗрдП, рдЧрд┐рдЯ-рдорд░реНрдЬ рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдорд╣рд╛рди рдЬрд╛рджреВ рдХреЛ рд╡рд╢ рдореЗрдВ рдХрд░реЗрдВред

рдпрд╣рд╛рдВ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдлрд▓ рд╡рд┐рд▓рдп рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ , рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдмрд┐рдирд╛ рд╕рдВрдШрд░реНрд╖ рдХреЗ рд╡рд┐рд▓рдпред рд╕рдВрдШрд░реНрд╖ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рд╣рд▓ рдХрд░рдирд╛ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рдпреЛрдЧреНрдп рдПрдХ рдЕрд▓рдЧ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╖рдп рд╣реИред рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд▓реЗрдЦ Git internals: data storage and merge рдХреЛ рднреА рдкрдврд╝реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдЯреАрдо рд╢рд░реАрд░ рд░рдЪрдирд╛


рдореИрдиреБрдЕрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрдорд╛рдВрдб рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ:

 
  git рдорд░реНрдЬ [-n] [--stat] [--no-рдкреНрд░рддрд┐рдмрджреНрдз] [--squash] [- [рдирд╣реАрдВ] рдИрдореЗрд▓] 
  [-s <рд░рдгрдиреАрддрд┐>] [-X <рд░рдгрдиреАрддрд┐-рд╡рд┐рдХрд▓реНрдк>] 
  [- [рдирд╣реАрдВ-] rereere-autoupdate] [-m <msg>] [<рдкреНрд░рддрд┐рдмрджреНрдз> ...] 
  git рдорд░реНрдЬ <msg> HEAD <рдкреНрд░рддрд┐рдмрджреНрдз> ... 
  git рдорд░реНрдЬ --abort 
 


By рдФрд░ рдмрдбрд╝реЗ, Git рдореЗрдВ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд▓рдп рд╣реЛрддреЗ рд╣реИрдВ: рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рд╡рд┐рд▓рдп рдФрд░ рд╕рд╣реА рд╡рд┐рд▓рдпред рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рд╕рдЪ рдорд░реНрдЬ


рд╣рдо рдХрдИ рд╕реБрдзрд╛рд░ рдмрдЧ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ ред рдХрдорд┐рдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 
  рдорд╛рд╕реНрдЯрд░: рдП - рдмреА - рд╕реА - рдбреА 
                   \ 
  рд╕реБрд╡рд┐рдзрд╛: рдПрдХреНрд╕ - рд╡рд╛рдИ 
 


рдорд╛рд╕реНрдЯрд░ git merge feature рд╢рд╛рдЦрд╛ рдкрд░ рдЪрд▓рд╛рдПрдБ:

 
  рдорд╛рд╕реНрдЯрд░: рдП - рдмреА - рд╕реА - рдбреА - (рдПрдо) 
                   \ / 
  рд╕реБрд╡рд┐рдзрд╛: рдПрдХреНрд╕ - рд╡рд╛рдИ 
 


рдпрд╣ рд╕рдмрд╕реЗ рдЖрдо рдорд░реНрдЬ рдкреИрдЯрд░реНрди рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдирдИ рдкреНрд░рддрд┐рдмрджреНрдз (рдПрдо) рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬреЛ рджреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдЧреА: рдбреА рдФрд░ рдкреНрд░рддрд┐рдмрджреНрдз рд╡рд╛рдИ; рдФрд░ рдорд╛рд╕реНрдЯрд░ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдХрдорд┐рдЯ (M) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣, Git рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдкреНрд░рддрд┐рдмрджреНрдз (M) рдореЗрдВ рдХреМрди рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ рдФрд░ рдХреМрди рд╕реА рдкреНрд░рддрд┐рдмрджреНрдз рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рд╣реИред рдЖрдорддреМрд░ рдкрд░, "рдорд░реНрдЬ рд╢рд╛рдЦрд╛ 'рдлреАрдЪрд░' рдЬреИрд╕реЗ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдорд░реНрдЬ рдХрдорд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк -m рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрджреЗрд╢ рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП рдПрдХ рдЯреЗрд╕реНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрдорд┐рдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рджреЗрдЦреЗрдВ, рдЬреЛ рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдерд╛:

 
  $ рдЧрд┐рдЯ рд▓реЙрдЧ - рдСрдирд▓рд╛рдЗрди 
  92384bd (M) 
  bceb5a4 D 
  5dce5b1 Y 
  76f13e7 рдПрдХреНрд╕ 
  d1920dc рд╕реА 
  3 рдП 5 рд╕реА 217 рдмреА 
  844af94 рдП 
 


рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрдорд┐рдЯреЗрдб рдЬрд╛рдирдХрд╛рд░реА (M):

 
  $ git рдмрд┐рд▓реНрд▓реА-рдлрд╝рд╛рдЗрд▓ -p 92384bd 
  рдкреЗрдбрд╝ 2b5c78f9086384bd86a2ab9d00c7e41a56f01d04 
  рдЬрдирдХ bceb5a4ad88e80467404473b94c3e0758dd8e0be 
  рдЬрдирдХ 5dce5b1edef64bd0d4e1039061a77be4d7182678 
  рд▓реЗрдЦрдХ рдЖрдВрджреНрд░реЗ <andrey.prokopyuk@gmail.com> 1380475972 +0400 
  рдХрдореЗрдВрдЯрд░реА рдЖрдВрджреНрд░реЗ <andrey.prokopyuk@gmail.com> 1380475972 +0400 

  (рдПрдо) 
 


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

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рд╕рдВрджрд░реНрдн рдХрд╣рд╛рдВ рд╣реИ:

 
  $ рдмрд┐рд▓реНрд▓реА .it / refs / рд╕рд┐рд░ / рдорд╛рд╕реНрдЯрд░ 
  92384bd77304c09b81dcc4485da165923b96ed5f 
 


рджрд░рдЕрд╕рд▓, рдЕрдм рдЗрд╕реЗ рдХрдорд┐рдЯрдореЗрдВрдЯ (M) рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдХреНрд╡реИрд╢ рдФрд░ рдиреЛ-рдХрдорд┐рдЯ


рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдЖрдкрдХреЛ рд╣рд░рд╛ рд╕рдХрддреА рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реБрдзрд╛рд░ рдЫреЛрдЯрд╛ рдерд╛, рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдореЗрдВ рдлрд┐рдЯ рд╣реЛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд╛рдо рдХреЗ рдмреАрдЪ рдореЗрдВ рдЖрдкрдХреЛ рдЯреНрд░реЗрди рд╕реЗ рднрд╛рдЧрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдШрд░ рдкрд░ рдЬрд╛рд░реА рд░рд╣рдирд╛ рдкрдбрд╝рд╛? рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рджреВрд╕рд░реА рдорд╢реАрди рдкрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ, рдпрд╛ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЬрдм рдЯреНрд░реЗрди рдХреЛ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ 10 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ рдФрд░ рд▓рдЧрднрдЧ рдПрдХ рдХрд┐рд▓реЛрдореАрдЯрд░ рдЯреНрд░реЗрди рд╕реНрдЯреЗрд╢рди рдкрд░) - push origin feature рдмрдирд╛рдПрдВред

рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рдЕрдзреВрд░рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдмреБрд░рд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЖрд╕рд╛рди, - --squash рд╡рд┐рдХрд▓реНрдк рд╣реИред

git merge feature --squash рдХреЗ рд╕рднреА рдХрдорд┐рдЯ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ git merge feature --squash рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдорд░реНрдЬ рдХрдорд┐рдЯ рдирд╣реАрдВ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА , рдЖрдкрдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╡рд┐рд▓рдп рдХрд░рддреЗ рд╕рдордп --no-commit рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдХреЗ рдЖрдк рд╕реНрдХреНрд╡реИрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдпрд╣ рдорд░реНрдЬ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдХрдорд┐рдЯ рд╣рдорд╛рд░реЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди Sq рдХрдорд┐рдЯ рдореЗрдВ рдЙрдирдХреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ:

 
  рдорд╛рд╕реНрдЯрд░: рдП - рдмреА - рд╕реА - рдбреА - рдПрд╕рдХреНрдпреВ 
                   \  
  рд╕реБрд╡рд┐рдзрд╛: рдПрдХреНрд╕ - рд╡рд╛рдИ 
 



рдмрд╛рдж рдореЗрдВ, рдпрджрд┐ рдЖрдк "рдХреНрд▓рд╛рд╕рд┐рдХ" git merge feature рдЪрд▓рд╛рддреЗ git merge feature рддреЛ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдХрд╣рд╛рдиреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд▓реЗрдЧреА:

 
  рдорд╛рд╕реНрдЯрд░: A - B - C - D - Sq - (M) 
                   \ / 
  рд╕реБрд╡рд┐рдзрд╛: рдПрдХреНрд╕ - рд╡рд╛рдИ 
 



рдпрджрд┐ рдЖрдк рдмрд┐рдирд╛ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдФрд░ рдлрд┐рд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рдХреА рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдкреВрд░реНрд╡рд╡рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: git merge --abort ред рдпрджрд┐ рд╡рд┐рд▓рдп рдХреЗ рджреМрд░рд╛рди рд╕рдВрдШрд░реНрд╖ рд╣реБрдЖ рдерд╛, рддреЛ рд╡рд╣реА рдЖрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрдиреНрд╣реЗрдВ рдлрд┐рд▓рд╣рд╛рд▓ рд╣рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд░рд┐рд╡рд╛рдЗрдВрдб (рдлрд╛рд╕реНрдЯ-рдлреЙрд░рд╡рд░реНрдб рдорд░реНрдЬ)


рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдПрдХ рдФрд░ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 
  рдорд╛рд╕реНрдЯрд░: рдП - рдмреА - рд╕реА 
                   \ 
  рд╕реБрд╡рд┐рдзрд╛: рдПрдХреНрд╕ - рд╡рд╛рдИ 
 


рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреА рддрд░рд╣ рд╣реА рд╕рдм рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдмреНрд░рд╛рдВрдЪ рдХреЗ рдмрд╛рдж рдХреЛрдИ рдХрдорд┐рдЯ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╛рд╕реНрдЯ-рдлрд╝реЙрд░рд╡рд░реНрдб рдорд░реНрдЬ (рд░рд┐рд╡рд╛рдЗрдВрдб)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдИ рдорд░реНрдЬ рдХрдорд┐рдЯ рдирд╣реАрдВ рд╣реИ, рдкреЙрдЗрдВрдЯрд░ (рдмреНрд░рд╛рдВрдЪ) рдорд╛рд╕реНрдЯрд░ рдХреЛ рдХреЗрд╡рд▓ рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлреАрдЪрд░ рдмреНрд░рд╛рдВрдЪ рдиреЗ рдЖрдкрдХреЛ рдмрддрд╛рдпрд╛ рд╣реИ:

 
  рдорд╛рд╕реНрдЯрд░, рдлрд╝реАрдЪрд░: рдП - рдмреА - рд╕реА - рдПрдХреНрд╕ - рд╡рд╛рдИ 
 


рд░рд┐рд╡рд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк --no-ff рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рд╣рдо git merge feature --no-ff -m '(M)' , рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдорд┐рд▓реЗрдЧрд╛:

 
  рдорд╛рд╕реНрдЯрд░: рдП - рдмреА - рд╕реА - (рдПрдо) 
                   \ / 
  рд╕реБрд╡рд┐рдзрд╛: рдПрдХреНрд╕ - рд╡рд╛рдИ 
 


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

рдЖрдк рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдЖрдк git pull origin branch_name , рддреЛ --ff-only ред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдореВрд▓ / рд╢рд╛рдЦрд╛_рдирд╛рдо рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп рдХрд░рддреЗ рд╕рдордп рд░рд┐рд╡рд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдСрдкрд░реЗрд╢рди рд░рджреНрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рд╡рд┐рд▓рдп рдХреА рд░рдгрдиреАрддрд┐


рдЧрд┐рдЯ-рдорд░реНрдЬ рдЯреАрдо рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд▓реНрдк рд╣реИ, - --strategy , рд░рдгрдиреАрддрд┐ред Git рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд░реНрдЬ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:


рд░рдгрдиреАрддрд┐ рдХреЛ рд╣рд▓ рдХрд░реЗрдВ

рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд░рдгрдиреАрддрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рддреАрди-рддрд░рдлрд╛ рдорд░реНрдЬ рд╣реИред рдорд╛рдирдХ рддреАрди-рддрд░рдлрд╛ рдорд░реНрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
  1. рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреА рдЦреЛрдЬ,
  2. рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдмрджрд▓ рдЧрдП рдмреНрд▓реЙрдХреЛрдВ рдХреА рдЦреЛрдЬ,
  3. рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ,
  4. рдмреНрд▓реЙрдХ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рдВрд╢ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╣реА рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
  5. рдмреНрд▓реЙрдХ рдЬреЛ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдмрджрд▓ рдЧрдП рд╣реИрдВ, рдХреЗрд╡рд▓ рддрднреА рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдорд╛рди рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдПрдХ рд╕рдВрдШрд░реНрд╖ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕рдВрдХрд▓реНрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд░рдгрдиреАрддрд┐ рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИ: рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдЖрдо рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рджреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ git merge feature -s resolve рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛:

 
  рдорд╛рд╕реНрдЯрд░: рдП - рдмреА - рд╕реА - рдбреА - (рдПрдо) 
                   \ / 
  рд╕реБрд╡рд┐рдзрд╛: рдПрдХреНрд╕ - рд╡рд╛рдИ 
 


рдпрд╣рд╛рдВ C рджреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреА рдЖрдо рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рдЕрдиреБрд░реВрдк рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рдмрд╛рдж рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдФрд░ рдлреАрдЪрд░ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдЯреНрд░реА рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣рдорд╛рд░реЗ рд╕рд╢рд░реНрдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл 4 рдФрд░ 5 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдорд┐рдЯ (рдПрдо) рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕рдВрдХрд▓реНрдк рд░рдгрдиреАрддрд┐ рдХреА рдХрдореА рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ? рдпрд╣ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдкреНрд░рддрд┐рдмрджреНрдз (рдПрдо) рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдордиреЗ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд░рдЦрд╛ рдФрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ git merge feature -s resolve рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддрд┐рдмрджреНрдз C рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕рдВрдШрд░реНрд╖ рдлрд┐рд░ рд╕реЗ рд╣реЛрдЧрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░рдгрдиреАрддрд┐

рдпрд╣ рд░рдгрдиреАрддрд┐ рд╕рдВрдХрд▓реНрдк рд░рдгрдиреАрддрд┐ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред рдпрд╣ рддреАрди-рддрд░рдлрд╛ рд╡рд┐рд▓рдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ "рдЖрднрд╛рд╕реА" рдкреВрд░реНрд╡рдЬ, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╢рд░реНрдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  1. рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИ,
  2. рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреЛ рд╡рд┐рд▓рдп рдХрд░ рджреЗрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдирдпрд╛ "рдЖрднрд╛рд╕реА" рдкреВрд░реНрд╡рдЬ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЗ рдкреБрди: рдкреНрд░рдХрдЯрди рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рддреАрди-рддрд░рдлрд╛ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд░рдгрдиреАрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд▓реЗрдЦ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЙрдзрд╛рд░ рд▓реЗрддреЗ рд╣реИрдВ рдкреНрд▓рд╛рд╕реНрдЯрд┐рд╕рд┐рдХреНрд╕ рдмреНрд▓реЙрдЧ рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░рдгрдиреАрддрд┐ рдорд░реНрдЬ рдХрд░реЗрдВ:

рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡рд┐рд▓рдп рдХрд░реЗрдВ

рддреЛ, рд╣рдорд╛рд░реА рджреЛ рд╢рд╛рдЦрд╛рдПрдБ рд╣реИрдВ: рдореБрдЦреНрдп рдФрд░ рдЯрд╛рд╕реНрдХ001ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдЕрдЪреНрдЫреЗ рдиреНрдпрд╛рдпрд╛рдзреАрд╢ рд╣реИрдВ: рдЙрдиреНрд╣реЛрдВрдиреЗ рдЯрд╛рд╕реНрдХ001 рд╢рд╛рдЦрд╛ рд╕реЗ 12 рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рд╕реЗ 15 рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛, рд╕рд╛рде рд╣реА рдкреНрд░рддрд┐рдмрджреНрдз 16 рдХреЗ рд╕рд╛рде 16 рдкреНрд░рддрд┐рдмрджреНрдзред рдЬрдм рд╣рдореЗрдВ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реБрдИ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреВрд░реНрд╡рдЬ рдПрдХ рдзрдиреНрдпрд╡рд╛рдж рд░рд╣рд┐рдд рдХрд╛рд░реНрдп рдерд╛ , рд▓реЗрдХрд┐рди рдПрдХ "рдЖрднрд╛рд╕реА" рдкреВрд░реНрд╡рдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░рдгрдиреАрддрд┐ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреАред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрди рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:

рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡рд┐рд▓рдп рдХрд░реЗрдВ

рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░рдгрдиреАрддрд┐ рдореЗрдВ рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рдХрд┐ -X рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ git-merge рдХрдорд╛рдВрдб рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдСрдХреНрдЯреЛрдкрд╕ рдХреА рд░рдгрдиреАрддрд┐

рдЗрд╕ рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рд╡рдЪрдирдмрджреНрдзрддрд╛, рддрджрдиреБрд╕рд╛рд░, рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╣реЛрдВрдЧреЗред

рдЗрд╕ рд░рдгрдиреАрддрд┐ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдСрдХреНрдЯреЛрдкрд╕ рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд▓рдп рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдирд╛ рдХрднреА-рдХрднреА рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИред

рд╣рдорд╛рд░реА рд░рдгрдиреАрддрд┐

рд╣рдорд╛рд░реА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░рдгрдиреАрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рднреНрд░рдорд┐рдд рдордд рдХрд░реЛред

рдкреНрд░рджрд░реНрд╢рди git merge -s ours obsolete , рдЖрдк рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐: рдореИрдВ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХрднреА-рдХрднреА рд╣рдорд╛рд░реЗ рдмрдЬрд╛рдп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ:

 
  $ git рдЪреЗрдХрдЖрдЙрдЯ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ 
  $ git рдорд░реНрдЬ -s рдкреБрдирд░рд╛рд╡рд░реНрддреА -Xtheirs рдорд╛рд╕реНрдЯрд░ 
 


рд╣рдорд╛рд░реА рд░рдгрдиреАрддрд┐ рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░рдкрдВрдереА рд╕рд╛рдзрди рд╣реИред

рд╕рдмрдЯреНрд░реА рд░рдгрдиреАрддрд┐

рдЗрд╕ рд░рдгрдиреАрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП "рдкреНрд░реЛ рдЧрд┐рдЯ" рдкреБрд╕реНрддрдХ рдХреЗ рдЕрдзреНрдпрд╛рдп рдорд░реНрдЬрд┐рдВрдЧ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рджреВрд░рд╕реНрде рднрдВрдбрд╛рд░ рдЬреЛрдбрд╝реЗрдВ, рд░реИрдХ:

 
  $ git рд░рд┐рдореЛрдЯ add рд░реИрдХ_remote git@github.com: schacon / рд░реИрдХ.рдЬрд┐рдд 
  $ рдЬреАрдПрдЯреА рдХрд╛ рд░реИрдХ рд░реИрдХ_рдореЛрдЯ 
  рдЪреЗрддрд╛рд╡рдиреА: рдХреЛрдИ рдЖрдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ 
  рджреВрд░рд╕реНрде: рдЧрд┐рдирддреА рдХреА рд╡рд╕реНрддреБрдУрдВ: 3184, рдХрд┐рдпрд╛ред 
  рджреВрд░рд╕реНрде: рд╕рдВрдкреАрдбрд╝рд┐рдд рд╡рд╕реНрддреБрдПрдВ: 100% (1465/1465), рдХрд┐рдпрд╛ред 
  рд░рд┐рдореЛрдЯ: рдХреБрд▓ 3184 (рдбреЗрд▓реНрдЯрд╛ 1952), рдкреБрди: рдЙрдкрдпреЛрдЧ 2770 (рдбреЗрд▓реНрдЯрд╛ 1675) 
  рдкреНрд░рд╛рдкреНрдд рд╡рд╕реНрддреБрдПрдВ: 100% (3184/3184), 677.42 KiB |  4 рдХреАрдмреА / рдПрд╕, рдХрд┐рдпрд╛ред 
  рд╕рдорд╛рдзрд╛рди рдбреЗрд▓реНрдЯрд╛: 100% (1952/1952), рдХрд┐рдпрд╛ред 
  Git@github.com рд╕реЗ: schacon / рд░реИрдХ 
   * рдПрдХ рдирдИ рд╢рд╛рдЦрд╛] рдирд┐рд░реНрдорд╛рдг -> рд░реИрдХ_рдореЛрдЯ / рдирд┐рд░реНрдорд╛рдг 
   * [рдПрдХ рдирдИ рд╢рд╛рдЦрд╛] рдорд╛рд╕реНрдЯрд░ -> рд░реИрдХ_ рд╕реБрдкреНрд░реАрдо / рдорд╛рд╕реНрдЯрд░ 
   * [рдПрдХ рдирдИ рд╢рд╛рдЦрд╛] рд░реИрдХ-0.4 -> рд░реИрдХ_реНрд░реЗрдореЛрдЯ / рд░реИрдХ-0.4 
   * рдПрдХ рдирдИ рд╢рд╛рдЦрд╛] рд░реИрдХ-0.9 -> рд░реИрдХ_реНрд░реЗрдореЛрдЯ / рд░реИрдХ-0.9 
  $ git рдЪреЗрдХрдЖрдЙрдЯ -b рд░реИрдХ_рдмреНрд░рдВрдЪ рд░реИрдХ_рдЖрд░реНрдореЛрдЯ / рдорд╛рд╕реНрдЯрд░ 
  рд╕реБрджреВрд░ рд╢рд╛рдЦрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рд╢рд╛рдЦрд╛ рд░реИрдХ_рдмреНрд░рд╛рдВрдЪ / рд░реЗрдкреЛ / рд░реЗрдореЛ_рдореЛрдЯ / рдорд╛рд╕реНрдЯрд░ред 
  рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ "rack_branch" рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ 
 



рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдФрд░ рд░реИрдХ_рдмреНрд░рд╛рдВрдЪ рд╢рд╛рдЦрд╛рдУрдВ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВред рдЙрди рддрдереНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд╡реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рд░реИрдХ_рдмреНрд░рдВрдЪ рд╕реЗ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 
  $ рдЧрд┐рдЯ рдЪреЗрдХрдЖрдЙрдЯ рдорд╛рд╕реНрдЯрд░ 
  $ git рдорд░реНрдЬ - ssashash -s рд╕рдмрдЯреНрд░реА --no-рдкреНрд░рддрд┐рдмрджреНрдз рд░реИрдХ_рдмреНрд░рдВрдЪ 
  рд╕реНрдХреНрд╡реИрд╢ рдХрдорд┐рдЯ - HEAD рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ 
  рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдорд░реНрдЬ рдареАрдХ рдЪрд▓рд╛;  рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ 
 


рдЕрдм рд░реИрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдлрд╛рдЗрд▓реЗрдВ рд╣рдорд╛рд░реА рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИрдВред

рдЕрдВрддрд┐рдо рд╢рдмреНрдж


рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдЬреНрдЮрд╛рди рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛, рдЬреЛ рдореИрдВрдиреЗ рдЬреАрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдПред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рднреА рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреВрд░рдХ рдпрд╛ рдЧрд▓рддрд┐рдпрд╛рдВ рдФрд░ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВ рдЕрдЪрд╛рдирдХ рдРрд╕рд╛ рдмрдирд╛ рд╣реВрдВред

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


All Articles