рд╡рд┐рддрд░рд┐рдд рд╕реНрддреНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдЪреЗ рдкреНрд░рдХрд╛рд╢рди Git 2.23

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

рдорд╛рдЧреАрд▓ рд░рд┐рд▓реАрдЭрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд, рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ 505 рдмрджрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд, рдЬреЗ 77 рд╡рд┐рдХрд╕рдХрд╛рдВрдЪреНрдпрд╛ рд╕рд╣рднрд╛рдЧрд╛рдиреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд, рддреНрдпрд╛рдкреИрдХреА 26 рдиреЗ рдкреНрд░рдердордЪ рд╡рд┐рдХрд╛рд╕рд╛рдд рднрд╛рдЧ рдШреЗрддрд▓рд╛. рдмреЗрд╕рд┐рдХ рдирд╡рдХрд▓реНрдкрдирд╛:

  • рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ "git switch" рдЖрдгрд┐ "git restore" рдХрдорд╛рдВрдбреНрд╕ рд╢рд┐рдерд┐рд▓рдкрдгреЗ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ "git checkout" рдХреНрд╖рдорддрд╛рдВрдирд╛ рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬрд╕реЗ рдХреА рд╢рд╛рдЦрд╛ рд╣рд╛рддрд╛рд│рдгреА (рд╕реНрд╡рд┐рдЪ рдХрд░рдгреЗ рдЖрдгрд┐ рддрдпрд╛рд░ рдХрд░рдгреЗ) рдЖрдгрд┐ рдХрд╛рд░реНрдпрд░рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреАрд▓ рдлрд╛рдЗрд▓реНрд╕ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреЗ ("git checkout $commit - $filename") рдХрд┐рдВрд╡рд╛ рд▓рдЧреЗрдЪ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░рд╛рдд (тАЬтАФрд╕реНрдЯреЗрдЬрд┐рдВрдЧтАЭ, тАЬрдЧрд┐рдЯ рдЪреЗрдХрдЖрдЙрдЯтАЭ рдордзреНрдпреЗ рдХреЛрдгрддреЗрд╣реА ре▓рдирд╛рд▓реЙрдЧ рдирд╛рд╣реА). рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА, "git checkout" рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, "git restore" рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдВрдордзреВрди рдЕрдирдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЗ ("--no-overlay" by default).
  • "git merge тАУquit" рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛, рдЬреЛ "-abort" рдкреНрд░рдорд╛рдгреЗрдЪ, рд╢рд╛рдЦрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рд▓реАрдиреАрдХрд░рдгрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдерд╛рдВрдмрд╡рддреЛ, рдкрд░рдВрддреБ рдХрд╛рд░реНрдпрд░рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд▓рд╛ рдЕрд╕реНрдкрд░реНрд╢ рдареЗрд╡рддреЛ. рдореЕрдиреНрдпреБрдЕрд▓ рд╡рд┐рд▓реАрдиреАрдХрд░рдгрд╛рджрд░рдореНрдпрд╛рди рдХреЗрд▓реЗрд▓реЗ рдХрд╛рд╣реА рдмрджрд▓ рд╕реНрд╡рддрдВрддреНрд░ рдХрдорд┐рдЯ рдореНрд╣рдгреВрди рдЬрд╛рд░реА рдХрд░рдгреЗ рд╢реНрд░реЗрдпрд╕реНрдХрд░ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╣рд╛ рдкрд░реНрдпрд╛рдп рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддреЛ.
  • "рдЧрд┐рдЯ рдХреНрд▓реЛрди", "рдЧрд┐рдЯ рдлреЗрдЪ" рдЖрдгрд┐ "рдЧрд┐рдЯ рдкреБрд╢" рдХрдорд╛рдВрдб рдЖрддрд╛ рд▓рд┐рдВрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреАрд▓ рдХрдорд┐рдЯрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд╛рдд (рдкрд░реНрдпрд╛рдпреА);
  • рдЬреЛрдбрд▓реЗ тАЬgit blame тАФignore-revтАЭ рдЖрдгрд┐ тАЬтАФignore-revs-fileтАЭ рдкрд░реНрдпрд╛рдп рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдорд┐рдЯ рд╡рдЧрд│рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд рдЬреЗ рдХрд┐рд░рдХреЛрд│ рдмрджрд▓ рдХрд░рддрд╛рдд (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрд╡рд░реВрдкрди рдирд┐рд░рд╛рдХрд░рдгреЗ);
  • рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рд╡рдЪрдирдмрджреНрдзрддрд╛ рд╡рдЧрд│рдгреНрдпрд╛рд╕рд╛рдареА тАЬgit cherry-pick тАФskipтАЭ рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛ (тАЬgit reset && git cherry-pick тАФcontinueтАЭ рдХреНрд░рдорд╛рдЪреЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд▓реЗрд▓реЗ ре▓рдирд╛рд▓реЙрдЧ);
  • рд╕реНрдЯреЗрдЯрд╕.рдЕрд╣реЗрдб-рдмрд┐рд╣рд╛рдЗрдВрдб рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛрдбрд▓реА, рдЬреА "рдЧрд┐рдЯ рд╕реНрдЯреЗрдЯрд╕ -[рдиреЛ-]рдкреБрдвреЗ-рдорд╛рдЧреЗ" рдкрд░реНрдпрд╛рдп рдХрд╛рдпрдордЪреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ;
  • рдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдиреБрд╕рд╛рд░, "git log" рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рддрдкрдгреЗ рдореЗрд▓рдореЕрдкрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддреЗ, рдЬрд╕реЗ git рд╢реЙрд░реНрдЯрд▓реЙрдЧ рдЖрдзреАрдкрд╛рд╕реВрди рдХрд░рддреЗ;
  • 2.18 рдордзреНрдпреЗ рд╕рд╛рджрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрдорд┐рдЯ рдЧреНрд░рд╛рдл (core.commitGraph) рдЪреНрдпрд╛ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдХреЕрд╢реЗрдЪреЗ рдЕрдкрдбреЗрдЯ рдСрдкрд░реЗрд╢рди рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╡реЗрдЧрд╡рд╛рди рдЭрд╛рд▓реЗ рдЖрд╣реЗ. рдПрдХрд╛рдзрд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╡рд╛рдкрд░рддрд╛рдирд╛ git for-ref-ref рдЬрд▓рдж рдХреЗрд▓реЗ рдЖрдгрд┐ тАЬgit fetch тАФmultipleтАЭ рдордзреНрдпреЗ рдСрдЯреЛ-gc рд╡рд░ рдХреЙрд▓рдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдХреЗрд▓реА;
  • "git branch --list" рдЖрддрд╛ рдиреЗрд╣рдореА рд╕реВрдЪреАрдЪреНрдпрд╛ рдЕрдЧрджреА рд╕реБрд░рд╡рд╛рддреАрд▓рд╛ рдЕрд▓рд┐рдкреНрдд HEAD рджрд╛рдЦрд╡рддреЗ, рд▓реЛрдХреЗрд▓рдЪреА рдкрд░реНрд╡рд╛ рди рдХрд░рддрд╛.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛