ืฉื—ืจื•ืจ ื‘ืงืจืช ืžืงื•ืจ ืฉืœ Git 2.35

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

ื‘ื”ืฉื•ื•ืื” ืœืžื”ื“ื•ืจื” ื”ืงื•ื“ืžืช, ื”ื’ืจืกื” ื”ื—ื“ืฉื” ื›ืœืœื” 494 ืฉื™ื ื•ื™ื™ื, ืฉื”ื•ื›ื ื• ื‘ื”ืฉืชืชืคื•ืช 93 ืžืคืชื—ื™ื, ืžืชื•ื›ื 35 ืœืงื—ื• ื—ืœืง ื‘ืคื™ืชื•ื— ืœืจืืฉื•ื ื”. ื—ื™ื“ื•ืฉื™ื ืขื™ืงืจื™ื™ื:

  • ื”ืืคืฉืจื•ื™ื•ืช ืœืฉื™ืžื•ืฉ ื‘ืžืคืชื—ื•ืช SSH ืœื—ืชื™ืžื” ื“ื™ื’ื™ื˜ืœื™ืช ืขืœ ืื•ื‘ื™ื™ืงื˜ื™ Git ื”ื•ืจื—ื‘ื•. ื›ื“ื™ ืœื”ื’ื‘ื™ืœ ืืช ืชืงื•ืคืช ื”ืชื•ืงืฃ ืฉืœ ืžืกืคืจ ืžืคืชื—ื•ืช, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื”ื ื—ื™ื•ืช OpenSSH "valid-before" ื•-"valid-after", ื‘ืขื–ืจืชืŸ ื ื™ืชืŸ ืœื”ื‘ื˜ื™ื— ืขื‘ื•ื“ื” ื ื›ื•ื ื” ืขื ื—ืชื™ืžื•ืช ืœืื—ืจ ืฉื”ืžืคืชื— ืขื‘ืจ ืกื™ื‘ื•ื‘ ืขืœ ื™ื“ื™ ืื—ื“ ื”ืžืคืชื—ื™ื. ืœืคื ื™ ื›ืŸ ื”ื™ื™ืชื” ื‘ืขื™ื” ื‘ื”ืคืจื“ืช ื”ื—ืชื™ืžื•ืช ืขืœ ื™ื“ื™ ื”ืžืคืชื— ื”ื™ืฉืŸ ื•ื”ื—ื“ืฉ - ืื ืชืžื—ืง ืืช ื”ืžืคืชื— ื”ื™ืฉืŸ ืื™ ืืคืฉืจ ื™ื”ื™ื” ืœืืžืช ืืช ื”ื—ืชื™ืžื•ืช ืฉื ืขืฉื• ืื™ืชื• ื•ืื ืชืฉืื™ืจ ืื•ืชื• ืื– ื™ื™ืฉืืจ ืืคืฉืจื™ ืœื™ืฆื•ืจ ื—ืชื™ืžื•ืช ื—ื“ืฉื•ืช ืขื ื”ืžืคืชื— ื”ื™ืฉืŸ, ืฉื›ื‘ืจ ื”ื•ื—ืœืฃ ื‘ืžืคืชื— ืื—ืจ. ื‘ืืžืฆืขื•ืช valid-before ื•-valid-after ื ื™ืชืŸ ืœื”ืคืจื™ื“ ื‘ื™ืŸ ื”ื™ืงืฃ ื”ืžืคืชื—ื•ืช ืœืคื™ ื”ื–ืžืŸ ืฉื‘ื• ื ื•ืฆืจื” ื”ื—ืชื™ืžื”.
  • ื‘ื”ื’ื“ืจืช merge.conflictStyle, ื”ืžืืคืฉืจืช ืœื‘ื—ื•ืจ ืืช ื”ืžืฆื‘ ืœื”ืฆื’ืช ืžื™ื“ืข ืขืœ ื”ืชื ื’ืฉื•ื™ื•ืช ื‘ืžื”ืœืš ืžื™ื–ื•ื’, ื”ื•ืคื™ืขื” ืชืžื™ื›ื” ื‘ืžืฆื‘ "zdiff3", ืฉืžื–ื™ื– ืืช ื›ืœ ื”ืฉื•ืจื•ืช ื”ืกื˜ื ื“ืจื˜ื™ื•ืช ืฉืฆื•ื™ื ื• ื‘ืชื—ื™ืœืช ืื• ื‘ืกื•ืฃ ื”ืกื›ืกื•ืš ืืœ ืžื—ื•ืฅ ืœืงื•ื ืคืœื™ืงื˜ ืื–ื•ืจ, ื”ืžืืคืฉืจ ื”ืฆื’ื” ืงื•ืžืคืงื˜ื™ืช ื™ื•ืชืจ ืฉืœ ืžื™ื“ืข.
  • ืžืฆื‘ "--staged" ื ื•ืกืฃ ืœืคืงื•ื“ื” "git stash", ื”ืžืืคืฉืจ ืœื”ืกืชื™ืจ ืจืง ืฉื™ื ื•ื™ื™ื ืฉื ื•ืกืคื• ืœืื™ื ื“ืงืก, ืœืžืฉืœ ื‘ืžืฆื‘ ืฉื‘ื• ืฆืจื™ืš ืœื“ื—ื•ืช ื–ืžื ื™ืช ื—ืœืง ืžื”ืฉื™ื ื•ื™ื™ื ื”ืžื•ืจื›ื‘ื™ื ื›ื“ื™ ืงื•ื“ื ืœื”ื•ืกื™ืฃ ืืช ืžื” ืฉื›ื‘ืจ ืžื•ื›ืŸ ื•ืœื”ืชืžื•ื“ื“ ืขื ื”ืฉืืจ ืœืื—ืจ ื–ืžืŸ ืžื”. ื”ืžืฆื‘ ื“ื•ืžื” ืœืคืงื•ื“ื” "git commit", ื›ื•ืชื‘ ืจืง ืืช ื”ืฉื™ื ื•ื™ื™ื ืฉื”ื•ืฆื‘ื• ื‘ืื™ื ื“ืงืก, ืืš ื‘ืžืงื•ื ืœื™ืฆื•ืจ commit ื—ื“ืฉ ื‘-"git stash โ€”stage", ื”ืชื•ืฆืื” ืžืื•ื—ืกื ืช ื‘ืื–ื•ืจ ื”ื–ืžื ื™ ืฉืœ stash. ื‘ืจื’ืข ืฉื™ืฉ ืฆื•ืจืš ื‘ืฉื™ื ื•ื™ื™ื, ื ื™ืชืŸ ืœื”ื—ื–ื™ืจ ืื•ืชื ืขื ื”ืคืงื•ื“ื” "git stash pop".
  • ืžืคืจื˜ ืคื•ืจืžื˜ ื—ื“ืฉ ื ื•ืกืฃ ืœืคืงื•ื“ื” "git log", "--format=%(describe)", ื”ืžืืคืฉืจ ืœืฉืœื‘ ืืช ื”ืคืœื˜ ืฉืœ "git log" ืขื ื”ืคืœื˜ ืฉืœ ื”ืคืงื•ื“ื” "git describe". ื”ืคืจืžื˜ืจื™ื ืฉืœ "git describe" ืžืฆื•ื™ื ื™ื ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ื”ืžืคืจื˜ ("-format=%(describe:match= ,exclude= )"), ืฉื‘ื”ื ื ื™ืชืŸ ืœื›ืœื•ืœ ื’ื ืชื’ื™ื ืžืงื•ืฆืจื™ื ("โ€”format=%(describe:tags= )") ื•ืœื”ื’ื“ื™ืจ ืืช ืžืกืคืจ ื”ืชื•ื•ื™ื ื”ืงืกื“ืฆื™ืžืœื™ื™ื ืœื–ื™ื”ื•ื™ ืื•ื‘ื™ื™ืงื˜ื™ื ("โ€”format=%(describe:abbrev= )")). ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœืจืฉื•ื ืืช 8 ื”-commits ื”ืื—ืจื•ื ื™ื ืฉืœืชื’ื™ื ืฉืœื”ื ืื™ืŸ ืชื’ ืžื•ืขืžื“ ืœืฉื—ืจื•ืจ, ื•ืœืฆื™ื™ืŸ ืžื–ื”ื™ื ืฉืœ 8 ืชื•ื•ื™ื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื”: $ git log -8 โ€”format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643d v2-95d-94d -gb056bd 2.34.1bbc642f56 v95-8-gffb7f2.34.1d v203-9- gdf2980902c2.34.1adeb640 v3-41-g212b2.34.1a639
  • ื”ื”ื’ื“ืจื” user.signingKey ืชื•ืžื›ืช ื›ืขืช ื‘ืกื•ื’ื™ื ื—ื“ืฉื™ื ืฉืœ ืžืคืชื—ื•ืช ืฉืื™ื ื ืžื•ื’ื‘ืœื™ื ืœืกื•ื’ "ssh-" ื•ืžืฆื™ื™ื ืช ืืช ื ืชื™ื‘ ื”ืงื•ื‘ืฅ ื”ืžืœื ืœืžืคืชื—. ืกื•ื’ื™ื ื—ืœื•ืคื™ื™ื ืžืฆื•ื™ื ื™ื ื‘ืืžืฆืขื•ืช ื”ืงื™ื“ื•ืžืช "key::", ืœื“ื•ื’ืžื” "key::ecdsa-sha2-nistp256" ืขื‘ื•ืจ ืžืคืชื—ื•ืช ECDSA.
  • ืžื”ื™ืจื•ืช ื™ืฆื™ืจืช ืจืฉื™ืžืช ื”ืฉื™ื ื•ื™ื™ื ื‘ืžืฆื‘ "-ื”ื™ืกื˜ื•ื’ืจืžื”", ื›ืžื• ื’ื ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืืคืฉืจื•ืช "-color-moved-ws", ื”ืฉื•ืœื˜ืช ื‘ื”ื“ื’ืฉื” ืฉืœ ืจื•ื•ื—ื™ื ื‘ื”ื‘ื“ืœ ืฆื‘ืข, ื’ื“ืœื” ื‘ืื•ืคืŸ ื ื™ื›ืจ.
  • ื”ืคืงื•ื“ื” "git jump", ื”ืžืฉืžืฉืช ื›ื“ื™ ืœืกืคืง ืœ-Vim ืžื™ื“ืข ืขืœ ื”ืงืคื™ืฆื” ื”ืžื“ื•ื™ืงืช ืœืžื™ืงื•ื ื”ืจืฆื•ื™ ื‘ืงื•ื‘ืฅ ื‘ืขืช ื ื™ืชื•ื— ื”ืชื ื’ืฉื•ื™ื•ืช ืžื™ื–ื•ื’, ื”ืฆื’ืช ื”ื‘ื“ืœื™ื ืื• ื‘ื™ืฆื•ืข ืคืขื•ืœืช ื—ื™ืคื•ืฉ, ืžืกืคืงืช ืืช ื”ื™ื›ื•ืœืช ืœืฆืžืฆื ืืช ื”ืชื ื’ืฉื•ื™ื•ืช ื”ืžื™ื–ื•ื’ ื”ืžื›ื•ืกื•ืช. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœื”ื’ื‘ื™ืœ ืืช ื”ืคืขื•ืœื•ืช ืœืกืคืจื™ื™ืช "foo" ื‘ืœื‘ื“, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ "git jump merge - foo", ื•ื›ื“ื™ ืœื ืœื›ืœื•ืœ ืืช ืกืคืจื™ื™ืช "Documentation" ืžืขื™ื‘ื•ื“ - "git jump merge - ':^Documentation'"
  • ื ืขืฉืชื” ืขื‘ื•ื“ื” ืœืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืฉืœ ื”ืฉื™ืžื•ืฉ ื‘ืกื•ื’ "size_t" ื‘ืžืงื•ื "unsigned long" ืขื‘ื•ืจ ืขืจื›ื™ื ื”ืžื™ื™ืฆื’ื™ื ืืช ื’ื•ื“ืœื ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื, ืžื” ืฉืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืžืกื ื ื™ื "ื ืงื™ื™ื" ื•"ืžื›ืชื™ื" ืขื ืงื‘ืฆื™ื ื’ื“ื•ืœื™ื ืž-4 GB ื‘ื›ืœ ื”ืคืœื˜ืคื•ืจืžื•ืช, ื›ื•ืœืœ ืคืœื˜ืคื•ืจืžื•ืช ืขื ืžื•ื“ืœ ื”ื ืชื•ื ื™ื LLP64 , ื”ืกื•ื’ "ืœื ื—ืชื•ื ืืจื•ืš" ืฉื‘ื• ืžื•ื’ื‘ืœ ืœ-4 ื‘ืชื™ื.
  • ื”ืืคืฉืจื•ืช "-empty=(stop|drop|keep)" ื ื•ืกืคื” ืœืคืงื•ื“ื” "git am", ื”ืžืืคืฉืจืช ืœื‘ื—ื•ืจ ืืช ื”ื”ืชื ื”ื’ื•ืช ืฉืœ ื”ื•ื“ืขื•ืช ืจื™ืงื•ืช ืฉืื™ื ืŸ ืžื›ื™ืœื•ืช ืชื™ืงื•ื ื™ื ื‘ืขืช ื ื™ืชื•ื— ืชื™ืงื•ื ื™ื ืžืชื™ื‘ืช ื”ื“ื•ืืจ. ื”ืขืจืš "ืขืฆื•ืจ" ื™ืคืกื™ืง ืืช ื›ืœ ืคืขื•ืœืช ื”ืชื™ืงื•ืŸ, "ื“ืจื•ืค" ื™ื“ืœื’ ืขืœ ืชื™ืงื•ืŸ ืจื™ืง, ื•-"keep" ื™ื™ืฆื•ืจ commit ืจื™ืง.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืื™ื ื“ืงืกื™ื ื—ืœืงื™ื™ื (ืื™ื ื“ืงืก ื“ืœ) ืœืคืงื•ื“ื•ืช "git reset", "git diff", "git blame", "git fetch", "git pull" ื•-"git ls-files" ื›ื“ื™ ืœืฉืคืจ ื‘ื™ืฆื•ืขื™ื ื•ืœื—ืกื•ืš ืžืงื•ื ื‘ repositories , ืฉื‘ื”ื ืžืชื‘ืฆืขื•ืช ืคืขื•ืœื•ืช ืฉื™ื‘ื•ื˜ ื—ืœืงื™ื•ืช (sparse-checkout).
  • ื”ืคืงื•ื“ื” "git sparse-checkout init" ื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ ื•ื™ืฉ ืœื”ื—ืœื™ืคื” ื‘-"git sparse-checkout set".
  • ื ื•ืกืฃ ื”ื˜ืžืขื” ืจืืฉื•ื ื™ืช ืฉืœ backend "ื ื™ืชืŸ ืœืฉื—ื–ื•ืจ" ื—ื“ืฉ ืœืื—ืกื•ืŸ ื”ืคื ื™ื•ืช ื›ื’ื•ืŸ ืกื ื™ืคื™ื ื•ืชื’ื™ื•ืช ื‘ืžืื’ืจ. ื”ืงืฆื” ื”ืขื•ืจืคื™ ื”ื—ื“ืฉ ืžืฉืชืžืฉ ื‘ืื—ืกื•ืŸ ื‘ืœื•ืง ื”ืžืฉืžืฉ ืืช ืคืจื•ื™ืงื˜ JGit ื•ื”ื•ื ืžื•ืชืื ืœืื—ืกื•ืŸ ืžืกืคืจ ื’ื“ื•ืœ ืžืื•ื“ ืฉืœ ื”ืคื ื™ื•ืช. ื”-backend ืขื“ื™ื™ืŸ ืœื ืžืฉื•ืœื‘ ืขื ืžืขืจื›ืช refs ื•ืื™ื ื• ืžื•ื›ืŸ ืœืฉื™ืžื•ืฉ ืžืขืฉื™.
  • ืคืœื˜ืช ื”ืฆื‘ืขื™ื ืฉืœ ื”ืคืงื•ื“ื” "git grep" ื”ื•ืชืืžื” ื›ื“ื™ ืœื”ืชืื™ื ืœื›ืœื™ ื”ืฉื™ืจื•ืช GNU grep.

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

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