ืฉื—ืจื•ืจ ืžืขืจื›ืช ื‘ืงืจืช ืžืงื•ืจ ืžื‘ื•ื–ืจืช Git 2.23

ืฉื”ื•ื’ืฉ ืขืœ ื™ื“ื™ ืฉื—ืจื•ืจ ืžืขืจื›ืช ื‘ืงืจืช ื”ืžืงื•ืจ ื”ืžื‘ื•ื–ืจืช ื’ื™ื˜ 2.23.0. Git ื”ื™ื ืื—ืช ืžืžืขืจื›ื•ืช ื‘ืงืจืช ื”ื’ืจืกืื•ืช ื”ืคื•ืคื•ืœืจื™ื•ืช, ื”ืืžื™ื ื•ืช ื•ื‘ืขืœื™ ื”ื‘ื™ืฆื•ืขื™ื ื”ื’ื‘ื•ื”ื™ื ื‘ื™ื•ืชืจ, ื”ืžืกืคืงืช ื›ืœื™ ืคื™ืชื•ื— ื’ืžื™ืฉื™ื ืœื ืœื™ื ืืจื™ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ื”ืกืชืขืคื•ืช ื•ืžื™ื–ื•ื’. ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืืช ืฉืœืžื•ืช ื”ื”ื™ืกื˜ื•ืจื™ื” ื•ื”ืชื ื’ื“ื•ืช ืœืฉื™ื ื•ื™ื™ื ืจื˜ืจื•ืืงื˜ื™ื‘ื™ื™ื, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘-hashing ืžืจื•ืžื– ืฉืœ ื›ืœ ื”ื”ื™ืกื˜ื•ืจื™ื” ื”ืงื•ื“ืžืช ื‘ื›ืœ commit, ื•ื ื™ืชืŸ ื’ื ืœืืฉืจ ืชื’ื™ื ื•-commits ื‘ื•ื“ื“ื™ื ื‘ื—ืชื™ืžื•ืช ื“ื™ื’ื™ื˜ืœื™ื•ืช ืฉืœ ืžืคืชื—ื™ื.

ื‘ื”ืฉื•ื•ืื” ืœืžื”ื“ื•ืจื” ื”ืงื•ื“ืžืช, ื”ื’ืจืกื” ื”ื—ื“ืฉื” ื›ืœืœื” 505 ืฉื™ื ื•ื™ื™ื, ืฉื”ื•ื›ื ื• ื‘ื”ืฉืชืชืคื•ืช 77 ืžืคืชื—ื™ื, ืžืชื•ื›ื 26 ืœืงื—ื• ื—ืœืง ื‘ืคื™ืชื•ื— ืœืจืืฉื•ื ื”. ื‘ืกื™ืกื™ ื—ื™ื“ื•ืฉื™ื:

  • ืคืงื•ื“ื•ืช "git switch" ื•-"git restore" ื ื™ืกื™ื•ื ื™ื•ืช ืžื•ืฆื’ื•ืช ื›ื“ื™ ืœื”ืคืจื™ื“ ื‘ื™ืŸ ื™ื›ื•ืœื•ืช "git checkout" ื”ืžืฉื•ืœื‘ื•ืช ื‘ืื•ืคืŸ ืจื•ืคืฃ, ื›ื’ื•ืŸ ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืขื ืคื™ื (ื”ื—ืœืคื” ื•ื™ืฆื™ืจื”) ื•ืฉื—ื–ื•ืจ ืงื‘ืฆื™ื ื‘ืกืคืจื™ื™ืช ื”ืขื‘ื•ื“ื” ("git checkout $commit - $filename") ืื• ืžื™ื“ ื‘ืื–ื•ืจ ื”ื”ื™ืขืจื›ื•ืช ("-staging", ืื™ืŸ ืื ืœื•ื’ื™ ื‘-"git checkout"). ืจืื•ื™ ืœืฆื™ื™ืŸ ืฉื‘ื ื™ื’ื•ื“ ืœ-"git checkout", "git restore" ืžืกื™ืจ ืงื‘ืฆื™ื ืœืœื ืžืขืงื‘ ืžื”ืกืคืจื™ื•ืช ื”ืžืฉื•ื—ื–ืจื•ืช ("--no-overlay" ื›ื‘ืจื™ืจืช ืžื—ื“ืœ).
  • ื ื•ืกืคื” ื”ืืคืฉืจื•ืช "git merge โ€“quit", ืฉื‘ื“ื•ืžื” ืœ-"-abort", ืขื•ืฆืจ ืืช ืชื”ืœื™ืš ืžื™ื–ื•ื’ ื”ืขื ืคื™ื, ืืš ืžืฉืื™ืจ ืืช ืกืคืจื™ื™ืช ื”ืขื‘ื•ื“ื” ืœืœื ื ื’ื™ืขื”. ืืคืฉืจื•ืช ื–ื• ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ืช ืื ื—ืœืง ืžื”ืฉื™ื ื•ื™ื™ื ืฉื ืขืฉื• ื‘ืžื”ืœืš ืžื™ื–ื•ื’ ื™ื“ื ื™ ืขื“ื™ืฃ ืฉื™ื•ื ืคืงื• ื›ืžื—ื•ื™ื™ื‘ื•ืช ื ืคืจื“ืช.
  • ื”ืคืงื•ื“ื•ืช "ื’ื™t clone", "git fetch" ื•-"git push" ืœื•ืงื—ื•ืช ื‘ื—ืฉื‘ื•ืŸ ื›ืขืช ืืช ื”ื ื•ื›ื—ื•ืช ืฉืœ commits ื‘ืžืื’ืจื™ื ืžืงื•ืฉืจื™ื (ืžืชื—ืœืคื™ื);
  • ื ื•ืกืฃ ื”ืืคืฉืจื•ื™ื•ืช "git blame โ€”ignore-rev" ื•-"โ€”ignore-revs-file" ืžืืคืฉืจื•ืช ืœืš ืœื“ืœื’ ืขืœ commits ืฉืžื‘ืฆืขื™ื ืฉื™ื ื•ื™ื™ื ืงืœื™ื (ืœื“ื•ื’ืžื”, ืชื™ืงื•ื ื™ ืขื™ืฆื•ื‘);
  • ื ื•ืกืคื” ืืช ื”ืืคืฉืจื•ืช "git cherry-pick โ€”skip" ื›ื“ื™ ืœื“ืœื’ ืขืœ commit ืžืชื ื’ืฉ (ืื ืœื•ื’ื™ ื‘ืขืœ ืฉื™ื ื•ืŸ ืฉืœ ื”ืจืฆืฃ "git reset && git cherry-pick โ€”continue");
  • ื”ื•ืกืคื” ืืช ื”ื”ื’ื“ืจื” status.aheadBehind, ืืฉืจ ืžืชืงื ืช ืœืฆืžื™ืชื•ืช ืืช ื”ืืคืฉืจื•ืช "ืกื˜ื˜ื•ืก git -[no-]ahead-behind";
  • ื ื›ื•ืŸ ืœื’ืจืกื” ื–ื•, "git log" ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืœื•ืงื— ื‘ื—ืฉื‘ื•ืŸ ืฉื™ื ื•ื™ื™ื ืฉื‘ื•ืฆืขื• ืขืœ ื™ื“ื™ mailmap, ื‘ื“ื•ืžื” ืœืื•ืคืŸ ืฉื‘ื• git shortlog ื›ื‘ืจ ืขื•ืฉื”;
  • ืคืขื•ืœืช ื”ืขื“ื›ื•ืŸ ืฉืœ ื”ืžื˜ืžื•ืŸ ื”ื ื™ืกื™ื•ื ื™ ืฉืœ ื’ืจืฃ ื”-commit (core.commitGraph) ืฉื”ื•ืฆื’ ื‘-2.18 ื”ื•ืืฆื” ืžืฉืžืขื•ืชื™ืช. ื›ืžื• ื›ืŸ ื”ืคืš ืืช git for-each-ref ืœืžื”ื™ืจ ื™ื•ืชืจ ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืžืกืคืจ ืชื‘ื ื™ื•ืช ื•ื”ืคื—ื™ืช ืืช ืžืกืคืจ ื”ืงืจื™ืื•ืช ืœ-auto-gc ื‘-"git fetch โ€”multiple";
  • "git branch --list" ืžืฆื™ื’ ื›ืขืช ืชืžื™ื“ HEAD ืžื ื•ืชืง ืžืžืฉ ื‘ืชื—ื™ืœืช ื”ืจืฉื™ืžื”, ืœืœื ืงืฉืจ ืœืžืงื•ื.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”