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

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

ื‘ื”ืฉื•ื•ืื” ืœืžื”ื“ื•ืจื” ื”ืงื•ื“ืžืช, ื”ื’ืจืกื” ื”ื—ื“ืฉื” ื›ืœืœื” 679 ืฉื™ื ื•ื™ื™ื, ืฉื”ื•ื›ื ื• ื‘ื”ืฉืชืชืคื•ืช 85 ืžืคืชื—ื™ื, ืžืชื•ื›ื 23 ืœืงื—ื• ื—ืœืง ื‘ืคื™ืชื•ื— ืœืจืืฉื•ื ื”. ื—ื™ื“ื•ืฉื™ื ืขื™ืงืจื™ื™ื:

  • ื ื•ืกืคื” ื”ืคืงื•ื“ื” "git maintenance", ื”ืžืืคืฉืจืช ืœืš ืœื‘ืฆืข ืขื‘ื•ื“ื” ืชืงื•ืคืชื™ืช ืขืœ ืžืขืจื›ื•ืช ืฉืื™ื ืŸ ืชื•ืžื›ื•ืช ื‘-cron. ืœื“ื•ื’ืžื”, ื‘ืืžืฆืขื•ืช ืคืงื•ื“ื” ื—ื“ืฉื”, ื ื™ืชืŸ ืœืืจื’ืŸ ืฉืชื”ืœื™ืš ืืจื™ื–ืช ื”ืžืื’ืจ ื™ืคืขืœ ืžืขืช ืœืขืช, ื›ืš ืฉืœื ืชืฆื˜ืจืš ืœื—ื›ื•ืช ืขื“ ืฉื”ืžืื’ืจ ื™ื™ื ืขืœ ื›ืืฉืจ ื”ืืจื™ื–ื” ืžืชื‘ืฆืขืช ืื•ื˜ื•ืžื˜ื™ืช ืชื•ืš ื”ืคืขืœืช ืคืงื•ื“ื•ืช ืฉื•ื ื•ืช. ื”ืคืงื•ื“ื” "ืชื—ื–ื•ืงื” git" ืžืืคืฉืจืช ืœื‘ืฆืข ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื•ืคืขื•ืœื•ืช ืœืฉืžื™ืจื” ืขืœ ื”ืžื‘ื ื” ื”ืื•ืคื˜ื™ืžืœื™ ืฉืœ ื”ืžืื’ืจ ื‘ืจืงืข, ืžื‘ืœื™ ืœื—ืกื•ื ืืช ื”ื”ืคืขืœื” ื”ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ืช - ืื—ืช ืœืฉืขื”, ืžืชื‘ืฆืขืช ืขื‘ื•ื“ื” ืขืœ ืžื ืช ืœื”ื•ืจื™ื“ ื‘ืื•ืคืŸ ื™ื–ื•ื ืื•ื‘ื™ื™ืงื˜ื™ื ื˜ืจื™ื™ื ืžื”ืžืื’ืจ ื”ืžืจื•ื—ืง ื•ืœืขื“ื›ืŸ ืืช ืงื•ื‘ืฅ ืขื ื’ืจืฃ ื”-commit, ื•ืชื”ืœื™ืš ื”ืืจื™ื–ื” ืฉืœ ื”ืžืื’ืจ ืžืชื—ื™ืœ ื‘ื›ืœ ืœื™ืœื”.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ืœืฉืžื™ืจื” ืขืœ ืื™ื ื“ืงืก ื”ืคื•ืš (revindex) ื‘ื“ื™ืกืง ืขื‘ื•ืจ ืงื‘ืฆื™ ื—ื‘ื™ืœื”. ื ื–ื›ื™ืจ ืฉ-Git ืžืื—ืกืŸ ืืช ื›ืœ ื”ื ืชื•ื ื™ื ื‘ืฆื•ืจื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื, ื”ืžืžื•ืงืžื™ื ื‘ืงื‘ืฆื™ื ื ืคืจื“ื™ื. ื›ื“ื™ ืœื”ื’ื‘ื™ืจ ืืช ื™ืขื™ืœื•ืช ื”ืขื‘ื•ื“ื” ืขื ื”ืžืื’ืจ, ืื•ื‘ื™ื™ืงื˜ื™ื ืžืžื•ืงืžื™ื ื‘ื ื•ืกืฃ ื‘ืงื‘ืฆื™ ื—ื‘ื™ืœื”, ืฉื‘ื”ื ื”ืžื™ื“ืข ืžื•ืฆื’ ื‘ืฆื•ืจื” ืฉืœ ื–ืจื ืื•ื‘ื™ื™ืงื˜ื™ื ื”ืขื•ืงื‘ื™ื ื–ื” ืื—ืจ ื–ื” (ืคื•ืจืžื˜ ื“ื•ืžื” ืžืฉืžืฉ ื‘ืขืช ื”ืขื‘ืจืช ืื•ื‘ื™ื™ืงื˜ื™ื ืขื ื”-git fetch ื•-git push ืคืงื•ื“ื•ืช). ืขื‘ื•ืจ ื›ืœ ืงื•ื‘ืฅ ื—ื‘ื™ืœื” ื ื•ืฆืจ ืงื•ื‘ืฅ ืื™ื ื“ืงืก (.idx), ื”ืžืืคืฉืจ ืœืงื‘ื•ืข ื‘ืžื”ื™ืจื•ืช ืจื‘ื” ืืช ื”ื”ื™ืกื˜ ื‘ืงื•ื‘ืฅ ื”-pack ืฉื‘ื• ื”ืื•ื‘ื™ื™ืงื˜ ื”ื ืชื•ืŸ ืžืื•ื—ืกืŸ ื‘ืืžืฆืขื•ืช ืžื–ื”ื” ื”ืื•ื‘ื™ื™ืงื˜. ื”ื•ืฆื’ ื‘-Git 2.31, ื”ืื™ื ื“ืงืก ื”ื”ืคื•ืš (.rev) ื ื•ืขื“ ืœื™ื™ืขืœ ืืช ื”ืชื”ืœื™ืš ืฉืœ ืงื‘ื™ืขืช ืžื–ื”ื” ืื•ื‘ื™ื™ืงื˜ ืžืชื•ืš ืžื™ื“ืข ืขืœ ืžื™ืงื•ื ืื•ื‘ื™ื™ืงื˜ ื‘ืงื•ื‘ืฅ pack.

    ื‘ืขื‘ืจ, ื”ืžืจื” ื›ื–ื• ื‘ื•ืฆืขื” ืชื•ืš ื›ื“ื™ ื ื™ืชื•ื— ืฉืœ ืงื•ื‘ืฅ ื”-pack ื•ื ืฉืžืจื” ืจืง ื‘ื–ื™ื›ืจื•ืŸ, ืžื” ืฉืœื ืืคืฉืจ ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืื™ื ื“ืงืกื™ื ื“ื•ืžื™ื ื•ืื™ืœืฅ ืืช ื”ืื™ื ื“ืงืก ืœื”ื™ื•ื•ืฆืจ ื‘ื›ืœ ืคืขื. ืคืขื•ืœืช ื‘ื ื™ื™ืช ื”ืื™ื ื“ืงืก ืžืกืชื›ืžืช ื‘ื‘ื ื™ื™ืช ืžืขืจืš ืฉืœ ืฆืžื“ื™ ืžื™ืงื•ื ืฉืœ ืื•ื‘ื™ื™ืงื˜ ื•ืžื™ื•ืŸ ืœืคื™ ืžื™ืงื•ื, ืžื” ืฉื™ื›ื•ืœ ืœืงื—ืช ื–ืžืŸ ืจื‘ ืขื‘ื•ืจ ืงื‘ืฆื™ ื—ื‘ื™ืœื” ื’ื“ื•ืœื™ื.

    ืœื“ื•ื’ืžื”, ืคืขื•ืœื” ืœื”ืฆื’ืช ืชื•ื›ืŸ ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื, ื”ืžืฉืชืžืฉืช ื‘ืื™ื ื“ืงืก ื™ืฉื™ืจ, ื”ื™ื™ืชื” ืžื”ื™ืจื” ืคื™ 62 ืžืคืขื•ืœื” ืœื”ืฆื’ืช ื’ื•ื“ืœื ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื, ืฉืขื‘ื•ืจื ื ืชื•ื ื™ ื”ืžื™ืงื•ื ืœืื•ื‘ื™ื™ืงื˜ ืœื ื ื•ืกืคื• ืœืื™ื ื“ืงืก. ืœืื—ืจ ื”ืฉื™ืžื•ืฉ ื‘ืžื“ื“ ื”ื”ืคื•ืš, ืคืขื•ืœื•ืช ืืœื• ื”ื—ืœื• ืœืงื—ืช ื‘ืขืจืš ื‘ืื•ืชื• ื–ืžืŸ. ืื™ื ื“ืงืกื™ื ื”ืคื•ื›ื™ื ื’ื ืžืืคืฉืจื™ื ืœืš ืœื”ืื™ืฅ ืคืขื•ืœื•ืช ืฉืœื™ื—ืช ืื•ื‘ื™ื™ืงื˜ื™ื ื‘ืขืช ื‘ื™ืฆื•ืข ืคืงื•ื“ื•ืช ืื—ื–ื•ืจ ื•ื“ื—ื™ืคื” ืขืœ ื™ื“ื™ ื”ืขื‘ืจื” ื™ืฉื™ืจื” ืฉืœ ื ืชื•ื ื™ื ืžื•ื›ื ื™ื ืžื”ื“ื™ืกืง. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืื™ื ื“ืงืกื™ื ื”ืคื•ื›ื™ื ืœื ื ื•ืฆืจื™ื; ื›ื“ื™ ืœื™ืฆื•ืจ ืื•ืชื, ืขืœื™ืš ืœื”ืคืขื™ืœ ืืช ื”ื”ื’ื“ืจื” "git config pack.writeReverseIndex true" ื•ืœืื—ืจ ืžื›ืŸ ืœืืจื•ื– ืืช ื”ืžืื’ืจ ืขื ื”ืคืงื•ื“ื” "git repack -Ad".

  • ื ื•ืกืคื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื‘ื™ืฆื•ืขื™ื ื”ืžื‘ื•ืกืกื•ืช ืขืœ ื”ื”ื•ืคืขื” ื‘ืคื•ืจืžื˜ ื”ืงื•ื‘ืฅ commit-graph, ื”ืžืฉืžืฉื•ืช ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื’ื™ืฉื” ืœืžื™ื“ืข ืขืœ commits, ื ืชื•ื ื™ื ื—ื“ืฉื™ื ืขืœ ืžืกืคืจ ื™ืฆื™ืจืช ื”-commit, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื“ื™ ืœื–ืจื– ืคืขื•ืœื•ืช ื ื•ืกืคื•ืช ืขื commits.
  • ื ื•ืกืคื• ืืคืฉืจื•ื™ื•ืช ืœื”ื’ื“ืจื” ืžื—ื“ืฉ ืฉืœ ืฉื ื”ืกื ื™ืฃ ื”ืจืืฉื™ ื”ืžืฉืžืฉ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ืžืื’ืจื™ื ื—ื“ืฉื™ื (ื”ื’ื“ืจืช init.defaultBranch). ื‘ืขืช ื’ื™ืฉื” ืœืžืื’ืจื™ื ื—ื™ืฆื•ื ื™ื™ื, git ืžื ืกื” ืœื‘ื“ื•ืง ืืช ื”ืขื ืฃ ืขืœื™ื• ื”ืฆื‘ื™ืข HEAD, ื›ืœื•ืžืจ. ืื ื”ืฉืจืช ื”ื—ื™ืฆื•ื ื™ ืžืฉืชืžืฉ ื‘ืกื ื™ืฃ "ื”ืจืืฉื™" ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืคืขื•ืœืช "ื’ื™ื˜ ืฉื™ื‘ื•ื˜" ืชื ืกื” ืœื”ื•ืฆื™ื ืืช "ืจืืฉื™" ื‘ืื•ืคืŸ ืžืงื•ืžื™. Git 2.31 ืชื•ืžืš ื›ืขืช ื‘ืกื•ื’ ื–ื” ืฉืœ ืชืฉืœื•ื ืขื‘ื•ืจ ืžืื’ืจื™ื ืจื™ืงื™ื. ืœื“ื•ื’ืžื”, ื‘ืขืช ืฉื™ื‘ื•ื˜ ืžืงื•ืžื™ ืฉืœ ืžืื’ืจ ื—ื“ืฉ ืœืคื ื™ ื”ื•ืกืคืช ื”ืชื™ืงื•ื ื™ื ื”ืจืืฉื•ื ื™ื ืืœื™ื•, ื”ืขื•ืชืง ื”ืžืงื•ืžื™ ื™ื›ื™ืœ ื›ืขืช ืืช ืฉื ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ืžืขืœื” ื”ื–ืจื ืฉื”ื•ื’ื“ืจ ื‘ืฉืจืช ื”ื—ื™ืฆื•ื ื™.
  • ื ื•ืกืคื” ืืคืฉืจื•ืช --disk-usage ืœืคืงื•ื“ื” "git rev-list" ื›ื“ื™ ืœืกืคืง ืกื™ื›ื•ื ืฉืœ ื’ื•ื“ืœ ื”ืื•ื‘ื™ื™ืงื˜ื™ื.
  • ืœืงืจืืช ื”ืฉื™ื ื•ื™ ื”ืงืจื•ื‘ ื‘-backend ืฉืœ ื”ืžื™ื–ื•ื’, ื–ื™ื”ื•ื™ ืฉื™ื ื•ื™ ื”ืฉื ืขื‘ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืžืฉืžืขื•ืชื™ืช.
  • ื”ืชืžื™ื›ื” ื‘ืกืคืจื™ื™ืช ื”ื‘ื™ื˜ื•ื™ื™ื ื”ืจื’ื™ืœื™ื PCRE1 ื”ื•ืคืกืงื”.
  • ืืคืฉืจ ืœืืกื•ืจ ื‘ืชื•ืงืฃ ืืช ื”ืฉื™ืžื•ืฉ ื‘ืงื™ืฉื•ืจื™ื ืžืงื•ืฆืจื™ื, ืœืœื ืงืฉืจ ืœืืœื’ื•ืจื™ืชื ื”ื’ื™ื‘ื•ื‘. ื”ืื™ืกื•ืจ ืžืชืืคืฉืจ ืขืœ ื™ื“ื™ ื”ืงืฆืืช ื”ืขืจืš "ืœื" ืœืคืจืžื˜ืจ core.abbrev.
  • ื ื•ืกืคื” ืืคืฉืจื•ืช "--path-format=(absolute|relative)" ืœืคืงื•ื“ืช "git rev-parse" ื›ื“ื™ ืœืฆื™ื™ืŸ ื‘ืžืคื•ืจืฉ ืื ื™ืฉ ืœืคืœื˜ ื ืชื™ื‘ื™ื ื™ื—ืกื™ื™ื ืื• ืžื•ื—ืœื˜ื™ื.
  • ืกืงืจื™ืคื˜ื™ื ืœื”ืฉืœืžืช Bash ืžืงืœื™ื ืขืœ ื”ื•ืกืคืช ื›ืœืœื™ ื”ืฉืœืžื” ืขื‘ื•ืจ ืคืงื•ื“ื•ืช ื”ืžืฉื ื” "git" ืžืฉืœืš.
  • ื ื•ืกืคื” ืืคืฉืจื•ืช --stdin ืœืคืงื•ื“ื” "git bundle" ื›ื“ื™ ืœืงืจื•ื ื”ืคื ื™ื•ืช ืžื–ืจื ื”ืงืœื˜ ื”ืกื˜ื ื“ืจื˜ื™.
  • ืืคืฉืจื•ืช ื—ื“ืฉื” "--diff-merges=" ื ื•ืกืคื” ืœืคืงื•ื“ืช "git log".
  • ื ื•ืกืคื” ืืคืฉืจื•ืช "--deduplicatecan" ืœืคืงื•ื“ืช "git ls-files" ื›ื“ื™ ืœื‘ื˜ืœ ืคืœื˜ ื›ืคื•ืœ.
  • ื ื•ืกืคื• ืžืกื™ื›ื•ืช ื—ื“ืฉื•ืช ื›ื“ื™ ืœื ืœื›ืœื•ืœ ืžื’ื•ื•ืŸ ืฉืœ commits - "^!" ื•-"^-".
  • ื”ื•ืกื™ืคื• ืืคืฉืจื•ื™ื•ืช "--left-only" ื•-"--right-only" ืœืคืงื•ื“ื” "git range-diff" ื›ื“ื™ ืœื”ืฆื™ื’ ืจืง ืฆื“ ืื—ื“ ืฉืœ ื”ื˜ื•ื•ื— ืฉืžืฉื•ื•ื•ื”.
  • ื ื•ืกืคื• ืืคืฉืจื•ื™ื•ืช --skip-to=" ื•-"--rotate-to=" ืœืคืงื•ื“ื•ืช "git diff" ื•-"git log" ื›ื“ื™ ืœื“ืœื’ ืื• ืœืขื‘ื•ืจ ืœืกื•ืฃ ื”ื ืชื™ื‘ื™ื ื”ืจืืฉื•ื ื™ื™ื.
  • ื ื•ืกืคื” ืืคืฉืจื•ืช "--skip-to=" ืœืคืงื•ื“ื” "git difftool" ื›ื“ื™ ืœื—ื“ืฉ ื”ืคืขืœื” ืฉื ืงื˜ืขื” ืžื ืชื™ื‘ ืฉืจื™ืจื•ืชื™.
  • ืงื•ื“ ื”ื”ืชื ื”ื’ื•ืช, ื”ืžื’ื“ื™ืจ ืืช ื”ืขืงืจื•ื ื•ืช ื”ื‘ืกื™ืกื™ื™ื ืœืคืชืจื•ืŸ ืžืฆื‘ื™ ืขื™ืžื•ืช ื‘ื™ืŸ ืžืคืชื—ื™ื, ืขื•ื“ื›ืŸ ืœื’ืจืกื” 2.0 (ืงื•ื“ื ืœื›ืŸ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื’ืจืกื” 1.4).

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

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