рд╡рд┐рддрд░рд┐рдд рд╕реНрд░реЛрдд рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА Git 2.22 рдХреЛ рд░рд┐рд▓реАрдЬ

рдкрд░рд┐рдЪрдп рдЧрд░рд╛рдП рдПрдХ рд╡рд┐рддрд░рд┐рдд рд╕реНрд░реЛрдд рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд░рд┐рд▓реАрдЬ Git реи.2.22.0реиред Git рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп, рднрд░рдкрд░реНрджреЛ рд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдордзреНрдпреЗ рдПрдХ рд╣реЛ, рдЬрд╕рд▓реЗ рд╢рд╛рдЦрд╛ рд░ рдорд░реНрдЬрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд▓рдЪрд┐рд▓реЛ рдЧреИрд░-рд░реИрдЦрд┐рдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдЗрддрд┐рд╣рд╛рд╕рдХреЛ рдЕрдЦрдгреНрдбрддрд╛ рд░ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдкреНрд░рддрд┐рд░реЛрдз рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯрдорд╛ рд╕рдореНрдкреВрд░реНрдг рдЕрдШрд┐рд▓реНрд▓реЛ рдЗрддрд┐рд╣рд╛рд╕рдХреЛ рдирд┐рд╣рд┐рдд рд╣реНрдпрд╛рд╕рд┐рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХреЛ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреНрдпрд╛рдЧрд╣рд░реВ рд░ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рд╣рд░реВ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрди рдкрдирд┐ рд╕рдореНрднрд╡ рдЫред

рдЕрдШрд┐рд▓реНрд▓реЛ рд░рд┐рд▓реАрдЬрдХреЛ рддреБрд▓рдирд╛рдорд╛, рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ 745 рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, 74 рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛рдорд╛ рддрдпрд╛рд░ рдкрд╛рд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рдордзреНрдпреЗ 18 рд▓реЗ рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ рд╡рд┐рдХрд╛рд╕рдорд╛ рднрд╛рдЧ рд▓рд┐рдПред рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░рд╣рд░реВ:

  • рд░рд┐рд▓реАрдЬ 1.18 рджреЗрдЦрд┐ рдЙрдкрд▓рдмреНрдз рдЫ, рдирдпрд╛рдБ рдХрдорд┐рдЯ рд░рд┐рдмреЗрд╕ рдореЛрдб "git rebase --rebase-merges" рд▓реЗ рдкреБрд░рд╛рдиреЛ "--preserve-merges" рд╡рд┐рдХрд▓реНрдкрд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрджрдЫ, рдЬреБрди рдЕрд╣рд┐рд▓реЗ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред "рдЧрд┐рдЯ рд░рд┐рдмреЗрд╕" рдЕрдкрд░реЗрд╕рдирд▓рд╛рдИ рдирдпрд╛рдБ рдЖрдзрд╛рд░ рдХрдорд┐рдЯрд╕рдБрдЧ рдХрдорд┐рдЯрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕реНрдерд┐рддрд┐рдорд╛ рдХреЗрд╣реА рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреБрдЯреНрдЯреИ рд╢рд╛рдЦрд╛ рд╕рд╛рд░реНрди, рдЬрд╕рдорд╛ рд╢рд╛рдЦрд╛ рдкрдЫрд┐ рдердкрд┐рдПрдХрд╛ рдлрд┐рдХреНрд╕рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред :

    o - o - o (рдореЗрд░реЛ рд╡рд┐рд╢реЗрд╖рддрд╛)

    /

    рдУ - рдУ - рдУ - рдУ - рдУ (рдорд╛рд╕реНрдЯрд░)

    o - o - o (рдореЗрд░реЛ рд╡рд┐рд╢реЗрд╖рддрд╛)

    /

    рдУ - рдУ - рдУ - рдУ - рдУ (рдорд╛рд╕реНрдЯрд░)

    рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рд╢рд╛рдЦрд╛рдорд╛ рд╢рд╛рдЦрд╛ рд╕рдВрд░рдЪрдирд╛ рдЬреЛрдЧрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, "--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" рд▓реЗ рд╣реЗрдбрд▓рд╛рдИ рдЖрдзрд╛рд░ рдХрдорд┐рдЯ рд░ "diff A" рдорд╛ рд╕рд┐рдлреНрдЯ рдЧрд░реНрдЫред ..B" рд▓реЗ рдХрдорд┐рдЯ "B" рд░ рдХрдорд┐рдЯ "A" "рдкреВрд░реНрд╡рдЬ" рдмреАрдЪрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рджреЗрдЦрд╛рдЙрдБрдЫред

    рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЫреБрдЯреНрдЯреИ рдорд╛рдИ-рдлрд┐рдЪрд░ рд╢рд╛рдЦрд╛рдорд╛ рдХрд╛рдо рдЧрд░реНрджрд╛, рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЬрдм рддрдкрд╛рдИрдВ рдлрд░рдХ рд╢рд╛рдЦрд╛рдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдХреЛ рдЙрд╣реА рдард╛рдЙрдБрдмрд╛рдЯ рдЬрд╣рд╛рдБрдмрд╛рдЯ рдореЗрд░реЛ-рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдкрд╣рд┐рд▓реЗ, рдпрд╕рд▓реЗ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд▓рдЧ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ, рдЬреБрди рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд┐рдпреЛ рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдареВрд▓реЛ рдЗрддрд┐рд╣рд╛рд╕ рдЫ рднрдиреЗ, рдорд╛рд╕реНрдЯрд░ рд░ рдореЗрд░реЛ-рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛рд╣рд░реВ рдмреАрдЪрдХреЛ рдорд░реНрдЬ рдЖрдзрд╛рд░рдХреЛ рд╣реНрдпрд╛рд╕ рдЧрдгрдирд╛ рдЧрд░реНрди "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");
  • "рдЧрд┐рдЯ рд▓рдЧ" рдЖрдЙрдЯрдкреБрдЯрдорд╛ рдХрдорд┐рдЯрд╣рд░реВрдорд╛ рд╕рдВрд▓рдЧреНрди рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЯреНрдпрд╛рдЧрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛ ("рдЯреНрд░реЗрд▓рд░" - рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЭрдгреНрдбрд╛рд╣рд░реВ, рдЬрд╕реНрддреИ рд╕рд╛рдЗрди-рдЕрдл-рджреНрд╡рд╛рд░рд╛ рд░ рд╕рд╣-рд▓реЗрдЦрдХ-рджреНрд╡рд╛рд░рд╛)ред рдХреБрдЮреНрдЬреА рд░ рдорд╛рди рджреБрд╡реИрджреНрд╡рд╛рд░рд╛ рд▓реЗрдмрд▓рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:
    "git log --pretty="%(trailers:key=Reviewed-by,valueonly)";

  • рдирдпрд╛рдБ рдЯреНрд░реЗрд╕рд┐рдЩ рдЗрдиреНрдЬрд┐рди, Trace2, рдердк рд▓рдЪрд┐рд▓реЛ рд░ рд╕рдВрд░рдЪрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИ рдердкрд┐рдПрдХреЛ рдЫред Trace2 рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд░ рдбрд┐рдмрдЧрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдбреЗрдЯрд╛ рдмрд╛рд░реЗ рдЯреЗрд▓рд┐рдореЗрдЯреНрд░реА рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рджреНрд╡рд╛рд░рд╛ рддреЛрдХрд┐рдПрдХреЛ рдЫ, рдХреБрдиреИ рдбрд╛рдЯрд╛ рдмрд╛рд╣реНрдп рд░реВрдкрдорд╛ рдкрдард╛рдЗрдБрджреИрди);
  • "git bisect" рдкреНрд░рддрд┐рд╡реЗрджрдирд▓рд╛рдИ рдердк рдкрдвреНрди рдпреЛрдЧреНрдп рдмрдирд╛рдЗрдПрдХреЛ рдЫ, рдЬрд╕рдорд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХрдорд┐рдЯрд╣рд░реВ рдЕрдм рдЕрдЭ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓рдХрд╛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдорд╛ рд╕рд╛рд░рд╛рдВрд╢ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫрдиреН (рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХрд╛ рд░реЗрдЦрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд╕реНрддрд░рдорд╛);
  • рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдкреБрди: рдирд╛рдорд╛рдХрд░рдгрд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╣реЗрд░рд┐рд╕реНрдЯрд┐рдХреНрд╕рд╣рд░реВ рдкреБрдирд░реНрдирд╛рдорд╛рдХрд░рдг рд▓реЗрдмрд▓рд╣рд░реВрдХреЛ рдЧрд▓рдд рд╕реНрдерд╛рдкрдирд╛ рд╣рдЯрд╛рдЙрди рдкреБрди: рдХрд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫред рдЬрдм рд╢рдВрдХрд╛рдорд╛, рддреНрдпрд╕реНрддрд╛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВ рдЕрдм рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рд░реВрдкрдорд╛ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЗрдиреНрдЫ;
  • рдЬрдм рддрдкрд╛рдЗрдБ рдЕрд░реНрдХреЛ рдЯреНрдпрд╛рдЧрдорд╛ рдЯреНрдпрд╛рдЧ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫ, рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЧрд▓реНрддреАрд▓реЗ рдЧрд░рд┐рдиреНрдЫ рд░ рдЧрд▓рдд рдХрдорд┐рдЯрдорд╛ рдЯреНрдпрд╛рдЧ рд╕реЗрдЯ рдЧрд░реНрди рдиреЗрддреГрддреНрд╡ рдЧрд░реНрди рд╕рдХреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "рдЧрд┐рдЯ рдЯреНрдпрд╛рдЧ -f -m "рдЕрдкрдбреЗрдЯ рдЧрд░рд┐рдПрдХреЛ рд╕рдиреНрджреЗрд╢" рдЬрд╕реНрддреЛ рдирд┐рд░реНрдорд╛рдгред my-tag1 my-tag2тА│ рд▓реЗ рдкреБрд░рд╛рдиреЛ рдЯреНрдпрд╛рдЧрдорд╛ рдЯреНрдпрд╛рдЧ рдмрдирд╛рдЗрдиреЗрдЫ, рдЬрдмрдХрд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдкреБрд░рд╛рдиреЛ рдЯреНрдпрд╛рдЧрджреНрд╡рд╛рд░рд╛ рдФрдВрд▓реНрдпрд╛рдПрдХреЛ рдХрдорд┐рдЯрдорд╛ рдирдпрд╛рдБ рдЯреНрдпрд╛рдЧ рд╕реНрдерд╛рдкрдирд╛ рд╣реБрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реЗрдХреЛ рдЫ);
  • рдмрд┐рдЯрдореНрдпрд╛рдк рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрд╣рд░реВ (рдбрд┐рд╕реНрдХ-рдЖрдзрд╛рд░рд┐рдд "рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рдмрд┐рдЯрдореНрдпрд╛рдк" рд╕рдВрд░рдЪрдирд╛) рдХреЛ рд▓рд╛рдЧрд┐ рдЬреЗрдиреЗрд░реЗрд╕рди рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕реЗрдЯрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЖрдзрд╛рд░ рд╡рд╕реНрддреБрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рджреНрд░реБрдд рд░реВрдкрдорд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпреЛ рд╕рдВрд░рдЪрдирд╛рд▓реЗ рдбреЗрдЯрд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрддрд┐ рдХрд╛рд░реНрдпрд╣рд░реВ (git fetch) рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдордпрд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдШрдЯрд╛рдЙрдБрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди