рд╡рд┐рддрд░рд┐рдд рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд┐рдореЛрдЪрди . Git рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреЛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдФрд░ рд╡рд┐рд▓рдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рдЪреАрд▓реЗ рдЧреИрд░-рд░реИрдЦрд┐рдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдЕрдЦрдВрдбрддрд╛ рдФрд░ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рдкреНрд░рддрд┐рд░реЛрдз рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯ рдореЗрдВ рдкреВрд░реЗ рдкрд┐рдЫрд▓реЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреИрдЧ рдФрд░ рдХрдорд┐рдЯ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред
рдкрд┐рдЫрд▓реЗ рд░рд┐рд▓реАрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ 745 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП 74 рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 18 рдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ред :
- рд░рд┐рд▓реАрдЬрд╝ 1.18 рд╕реЗ рдЙрдкрд▓рдмреНрдз, рдирдпрд╛ "git rebase --rebase-merges" рдХрдорд┐рдЯ рд╕реЗрдЯ рд░рд┐рд▓реЛрдХреЗрд╢рди рдореЛрдб рдкреБрд░рд╛рдиреЗ "--preserve-merges" рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдм рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред "git rebase" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдорд┐рдЯ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдПрдХ рдирдП рдмреЗрд╕ рдХрдорд┐рдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХрд▓ рдлреАрдЪрд░ рд╢рд╛рдЦрд╛ рдХреЛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░реАрдмреЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдлреЛрд░реНрдХ рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реЗ рдЧрдП рдлрд╝рд┐рдХреНрд╕реЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдУ тАФ рдУ тАФ рдУ (рдореЗрд░реА-рдлреАрдЪрд░)
/
рдУ - рдУ - рдУ - рдУ - рдУ (рдорд╛рд╕реНрдЯрд░)
рдУ тАФ рдУ тАФ рдУ (рдореЗрд░реА-рдлреАрдЪрд░)
/
рдУ - рдУ - рдУ - рдУ - рдУ (рдорд╛рд╕реНрдЯрд░)
рдкрд╣рд▓реЗ, "--preserve-merges" рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдЗрдЧреНрд░реЗрдЯреЗрдб рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдЦрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдЬрдм рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб (git rebase -i --preserve-merges) рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрдорд┐рдЯ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкреВрд░реНрдг рд╕рдВрд░рдХреНрд╖рдг рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдирдпрд╛ "--rebase-merges" рдореЛрдб рдорд╛рдЗрдЧреНрд░реЗрдЯреЗрдб рд╢рд╛рдЦрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдХрдорд┐рдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ, рдлрд┐рд░ рд╕реЗ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕рд╣рд┐рдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "--rebase-merges" рдорд╛рдЗрдЧреНрд░реЗрдЯреЗрдб рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдЦрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рдЕрд▓рдЧ рд╢рд╛рдЦрд╛ рд╕реЗ рдПрдХ рдирдИ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдХрдорд┐рдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдорд░реНрдЬ рдХрд░реЗрдВ, рдФрд░ рддреБрд░рдВрдд рдХрдорд┐рдЯ рдиреЛрдЯреНрд╕ рдореЗрдВ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВред
- "git branch new A...B" рдФрд░ "git checkout -b new A...B" рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЛ рдЕрдиреНрдп рд╢рд╛рдЦрд╛рдУрдВ (рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛) рдХреЗ рд╡рд┐рд▓рдп рдЖрдзрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЬрд╣рд╛рдВ "A...B" рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рджреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдорд┐рдЯреНрд╕ рдХреЗ рдмреАрдЪ рд╡рд┐рд▓рдп рдЖрдзрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕реА рддрд░рд╣ "git checkout A...B" HEAD рдХреЛ рдЖрдзрд╛рд░ рдХрдорд┐рдЯ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ "diff A...B" рдХрдорд┐рдЯ "B" рдФрд░ рдХрдорд┐рдЯ "A" рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдЕрд▓рдЧ рд╢рд╛рдЦрд╛ my-feature рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рддреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╢рд╛рдЦрд╛ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдЙрд╕реА рд╕реНрдерд╛рди рд╕реЗ рдЬрд╣рд╛рдБ рд╕реЗ my-feature рд╢рд╛рдЦрд╛ рдХреЛ рдЪреЗрдХ рдЖрдЙрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓реЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪреЗрдВрдЬрд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рдереА, рдЬреЛ рдХрд┐ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЗрддрд┐рд╣рд╛рд╕ рдерд╛, рдлрд┐рд░ рдорд╛рд╕реНрдЯрд░ рдФрд░ my-feature рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдорд░реНрдЬ рдмреЗрд╕ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "git merge-base master my-feature" рдЪрд▓рд╛рдирд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ "git branch my-other-feature hash" рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдмрдирд╛рдирд╛ред Git 2.22 рдореЗрдВ, рдЖрдк рджреЛ рдЕрдиреНрдп рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдорд░реНрдЬ рдмреЗрд╕ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рд╢рд╛рдЦрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП "git branch my-other-feature AтАжB" рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
- рдЪреЗрдХрдЖрдЙрдЯ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рд╢рд╛рдЦрд╛ рдХрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "git branch --show-current" рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛;
- "git checkout --no-overlay --dir" рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЬреЛ рдЖрдкрдХреЛ dir рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдРрд╕реЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЪреЗрдХрдЖрдЙрдЯ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╕рдордп рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ dir рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ "git checkout master --dir" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрджрд┐ "--no-overlay" рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
- "git diff" рдХрдорд╛рдВрдб рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп git рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "git diff" рдореЗрдВ рдЕрдм рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рд░реЛрдзреА ("--function-context" рдФрд░ "--no-function-context") рд╣реИрдВ;
- рдЧрд┐рдЯ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХрдорд┐рдЯреНрд╕ рд╕реЗ рдЬреБрдбрд╝реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЯреИрдЧ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ ("рдЯреНрд░реЗрд▓рд░" рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реВрдЪрдирд╛ рдлрд╝реНрд▓реИрдЧ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ Signed-off-by рдФрд░ Co-authored-by)ред рдЯреИрдЧ рдХреЛ рдХреБрдВрдЬреА рдФрд░ рдорд╛рди рджреЛрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
"git рд▓реЙрдЧ --pretty="%(рдЯреНрд░реЗрд▓рд░реНрд╕:рдХреБрдВрдЬреА=рд╕рдореАрдХреНрд╖рд╛-рджреНрд╡рд╛рд░рд╛,valueonly)"; - рдПрдХ рдирдпрд╛ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬреНрдо Trace2 рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЬреЛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдФрд░ рд╕рдВрд░рдЪрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Trace2 рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд╣реИрдВрдбрд▓рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдИ рдбреЗрдЯрд╛ рдмрд╛рд╣рд░ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ);
- "рдЧрд┐рдЯ рдмрд┐рд╕реЗрдХреНрдЯ" рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдм рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХрдорд┐рдЯреНрд╕ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╕рд╛рд░рд╛рдВрд╢ рдЖрдБрдХрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕реНрддрд░ рдкрд░);
- рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╣реЗрдпреБрд░рд┐рд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдирд┐рд╢рд╛рди рдХреА рдЧрд▓рдд рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд╕рдВрджреЗрд╣ рд╣реИ, рддреЛ рдРрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрдм рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдЕрдм рдХрд┐рд╕реА рдЯреИрдЧ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯреИрдЧ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЧрд▓рддреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЯреИрдЧ рдЧрд▓рдд рдХрдорд┐рдЯ рдкрд░ рд╕реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "git tag -f -m "updated message" my-tag1 my-tag2" рдЬреИрд╕рд╛ рдирд┐рд░реНрдорд╛рдг рдкреБрд░рд╛рдиреЗ рдЯреИрдЧ рдкрд░ рдЯреИрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛, рдЬрдмрдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдирдпрд╛ рдЯреИрдЧ рдЙрд╕ рдХрдорд┐рдЯ рдкрд░ рд╕реЗрдЯ рд╣реЛрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рдкреБрд░рд╛рдирд╛ рдЯреИрдЧ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ);
- рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рдбрд┐рд╕реНрдХ рд╕рдВрд░рдЪрдирд╛ "рд░реАрдЪреИрдмрд┐рд▓рд┐рдЯреА рдмрд┐рдЯрдореИрдкреНрд╕") рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдореИрдкреНрд╕ рдХреА рд╕рдХреНрд╖рдо рдкреАрдврд╝реА, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ рдФрд░ рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдбреЗрдЯрд╛ рдирд┐рд╖реНрдХрд░реНрд╖рдг рд╕рдВрдЪрд╛рд▓рди (рдЧрд┐рдЯ рдлрд╝реЗрдЪ) рдХреЗ рд╕рдордп рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрддреА рд╣реИред
рд╕реНрд░реЛрдд: opennet.ru
