ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° систСмата Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° изходния ΠΊΠΎΠ΄ Git 2.54

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Π±ΠΈΠ»Π΄ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° систСма Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ с ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Git 2.54. Git сС ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° с висока производитСлност ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° срСдства Π·Π° Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, основани Π½Π° разклоняванС ΠΈ сливанС Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅. Π—Π° Π΄Π° сС осигури цялостността Π½Π° историята ΠΈ устойчивостта Π½Π° измСнСния β€žΠ·Π°Π΄Π½ΠΈΠΌ Ρ‡ΠΈΡΠ»ΠΎΠΌβ€œ, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° нСявно Ρ…Π΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° цялата ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π° история ΠΏΡ€ΠΈ всяко ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ€Π°Π½Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ удостовСряванС с Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π³ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠΈΡ‚ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Git сС разпространява ΠΏΠΎΠ΄ лицСнзия GPLv2+.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»Π½ΠΎ с ΠΏΡ€Π΅Π΄Ρ…ΠΎΠ΄Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия са ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ 770 измСнСния, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ с участиСто Π½Π° 137 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ (66 ΠΎΡ‚ тях Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚ участват Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Git). ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ нововъвСдСния са:

  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° "git history", прСдоставяща СкспСримСнтални Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° прСнаписванС Π½Π° историята Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, ΠΏΠΎ-прости ΠΈ бСзопасни Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ прСнасочванСто Π½Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈ с ΠΊΠΎΠΌΠ°Π½Π΄Π° "git rebase". ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΡ‚ сС Π΄Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:
    • "git history reword " Π·Π° прСнаписванС Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² ΡƒΠΊΠ°Π·Π°Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ€Π°Π½Π΅ Π±Π΅Π· Π΄Π° сС промСня Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π΄ΡŠΡ€Π²ΠΎ ΠΈ индСкса (с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π±Π΅Π»Π΅ΠΆΠΊΠΈΡ‚Π΅, всичко останало остава Π½Π΅ΠΏΠΎΠΊΡŠΡ‚Π½Π°Ρ‚ΠΎ). НапримСр, Π·Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°.
    • "git history split " Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ раздСлянС Π½Π° ΡƒΠΊΠ°Π·Π°Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΈΡ‚ΠΈ с прСмСстванС Π½Π° ΠΈΠ·Π±Ρ€Π°Π½ΠΈ части ΠΎΡ‚ оригиналния ΠΊΠΎΠΌΠΈΡ‚ Π² Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΊΠΎΠΌΠΈΡ‚.

    Π’ Π±ΡŠΠ΄Π΅Ρ‰ΠΈΡ‚Π΅ издания сС ΠΎΡ‡Π°ΠΊΠ²Π° добавянСто Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ: "git history fixup" Π·Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈ, "git history drop" Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΈΡ‚, "git history reorder" Π·Π° промяна Π½Π° Ρ€Π΅Π΄Π° Π½Π° послСдоватСлността Π½Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅ ΠΈ "git history squash" Π·Π° обСдиняванС Π½Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈ.

  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° опрСдСлянС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ (hook) Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ВмСсто Π΄Π° сС поставят скриптовС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π² дирСкторията Β«.git/hooksΒ» Π½Π° всяко Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ сСга ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π²Π°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. НастройкитС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ ΠΈΠ»ΠΈ посочСни Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ дСйстват Π·Π° всички Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° (/etc/gitconfig) ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ‚Π° Π½Π° потрСбитСля (~/.gitconfig). Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° мноТСство ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ към Π΅Π΄Π½ΠΎ ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ Β«.git/hooksΒ» всС ΠΎΡ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Π΄Π° сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚, Π½ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ слСд ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π—Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° списъка с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git hook listΒ», Π° Π·Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ β€” настройката Β«hook..enabled = falseΒ». [hook Β«linterΒ»] event = pre-commit command = ~/.bin/linter β€”cpp20 [hook Β«no-leaksΒ»] event = pre-commit command = ~/.bin/leak-detector $ git hook list pre-commit global linter ~/.bin/linter β€”cpp20 local no-leaks ~/.bin/leak-detector
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git maintenanceΒ» ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° стратСгията Β«geometricΒ» (Β«git config set maintenance.strategy geometricΒ»), която позволява Π΄Π° сС ΡΡŠΠΊΡ€Π°Ρ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠ½ΠΎΡ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’ сравнСниС с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° стратСгия, която ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git gcΒ», Π½ΠΎΠ²Π°Ρ‚Π° стратСгия избягва ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° всички ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π° излишно рСсурсно ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ обСдиняванС Π½Π° всички pack-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π½Π° части ΠΈ Π±Π΅Π· почистванС Π½Π° ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ възмоТно).
  • Π‘Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ (ODB) ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ с нСя API-Ρ‚Π° са ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ Π½Π° Π½ΠΎΠ²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, основана Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° плъгини Π·Π° backend. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π°Ρ‚Π° рСструктуризация абстрахира Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΈ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ backend-ΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π·Π° оптимизация Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ git-хостинги.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git repo structureΒ», която прСдоставя информация Π·Π° структурата Π½Π° рСпозитория, Π΅ осигурСно ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ само Π½Π° общия Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½ΠΎ ΠΈ Π½Π° Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΎΡ‚ всСки Ρ‚ΠΈΠΏ, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΎΡ†Π΅Π½ΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ инструмСнт git-sizer. $ git repo structure … | * Най-Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ | | | * ΠšΠΎΠΌΠΈΡ‚ΠΈ | | | * МаксималСн Ρ€Π°Π·ΠΌΠ΅Ρ€ [1] | 17.23 KiB | | * Максимални Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ [2] | 10 | | * Π”ΡŠΡ€Π²Π΅Ρ‚Π° | | | * МаксималСн Ρ€Π°Π·ΠΌΠ΅Ρ€ [3] | 58.85 KiB | | * МаксималСн Π±Ρ€ΠΎΠΉ записи [4] | 1.18 k | | * Π‘LOB-ΠΎΠ²Π΅ | | | * МаксималСн Ρ€Π°Π·ΠΌΠ΅Ρ€ [5] | 1019.51 KiB | | * Π’Π°Π³ΠΎΠ²Π΅ | | | * МаксималСн Ρ€Π°Π·ΠΌΠ΅Ρ€ [6] | 7.13 KiB |
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git replayΒ», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° вмСсто Β«git rebaseΒ» Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° историята Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Π΄ΡŠΡ€Π²ΠΎ, Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈΡ‚Π΅ (вмСсто ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° списък с ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ update-ref Π·Π° Ρ€ΡŠΡ‡Π½ΠΎ изпълнСниС), Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Β«β€”revertΒ» Π·Π° отмСнянС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΡ‚ сСрия ΠΊΠΎΠΌΠΈΡ‚ΠΈ, осигурСно Π΅ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π·Π½ΠΈ ΠΊΠΎΠΌΠΈΡ‚ΠΈ ΠΈ Π΅ възмоТно Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° историята Π΄ΠΎ корСновия ΠΊΠΎΠΌΠΈΡ‚.
  • Π’ Β«git rev-listΒ» ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция Β«β€”maximal-onlyΒ» Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ само Π½Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅, Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΈΡ‚ΠΈ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git repo infoΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция Β«β€”keysΒ» Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° списък с всички извСстни ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git add -pΒ» ΠΏΡ€ΠΈ навигацията ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΠΈΡ‚Π΅ Β«JΒ» ΠΈ Β«KΒ» Π΅ осигурСно ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Π΅Ρ‡Π΅ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΡ‚Π΅ ΠΈ пропуснатитС Π±Π»ΠΎΠΊΠΎΠ²Π΅. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Β«β€”no-auto-advanceΒ» Π·Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ към слСдващия Ρ„Π°ΠΉΠ», Π·Π° Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС Π²ΡŠΡ€Π½Π΅Ρ‚Π΅ към ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡ€Π΅Π΄ΠΈ ΠΊΠΎΠΌΠΈΡ‚.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π΅ ΡƒΠ΅Π±-ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Β«gitwebΒ» Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ устройства.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git apply β€”directoryΒ» ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π΅ осигурСна нормализация Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡŠΡ‚ΠΈΡ‰Π°, ΠΊΠ°Ρ‚ΠΎ Β«.\/un\/..\/normalized\/pathΒ».
  • Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° добавянС Π½Π° собствСни ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ‡Ρ€Π΅Π· Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Β«git-<cmd>Β» Π² дирСкторията с ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ΅ΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git send-emailΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° клиСнтски сСртификати.
  • Π—Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git statusΒ» Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° настройка Β«status.compareBranchesΒ», Ρ‡Ρ€Π΅Π· която ΠΌΠΎΠΆΠ΅ Π΄Π° сС уточнят ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС сравнява тСкущият ΠΊΠ»ΠΎΠ½. [status] compareBranches = @{upstream} @{push}
  • Π’ Β«git rebaseΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция Β«β€”trailerΒ» Π·Π° опростяванС Π½Π° добавянСто Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ към всички ΠΊΠΎΠΌΠΈΡ‚ΠΈ. git rebase β€”trailer Β«Reviewed-by: Test <test@example.com>Β»
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žgit fast-importβ€œ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° замяна Π½Π° подписи Π·Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са станали Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΈ слСд ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ (compaction) Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΈ индСкси MIDX (multi-pack index), ΠΏΡ€ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠ°Π»ΠΊΠΈΡ‚Π΅ слоСвС Π½Π° MIDX индСкса с информация Π·Π° наличност Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ с тях bitmap-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС обСдиняват, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява намаляванС Π½Π° броя Π½Π° Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈΡ‚Π΅ слоСвС Π² стари Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žgit backfillβ€œ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π½Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈ) ΠΈ маски Π·Π° ΠΏΡŠΡ‚ΠΈΡ‰Π° (pathspec) Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½ΠΈΡ‚Π΅ части ΠΎΡ‚ историята Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅. git backfill main~100..main git backfill β€” β€˜*.c’
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠΈ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žgit config listβ€œ β€” β€žgit config -lβ€œ ΠΈ β€žgit config β€”listβ€œ.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π΅-ASCII символи Π² ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° псСвдонимитС Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π² конфигурационния Ρ„Π°ΠΉΠ». [alias β€žΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌβ€œ] command = fetch
  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° подписи, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΈΠ·Ρ‚Π΅ΠΊΡŠΠ» ΡΡ€ΠΎΠΊΡŠΡ‚ Π½Π° дСйствиС Π½Π° GPG ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅, Π½ΠΎ ΠΊΠΎΠΈΡ‚ΠΎ са Π±ΠΈΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π½ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° подписванСто Π½Π° ΠΊΠΎΠΌΠΈΡ‚Π°. Подобни подписи сСга сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈ с Π±Π΅Π»Π΅ΠΆΠΊΠ° Π·Π° остаряванС Π½Π° ΠΊΠ»ΡŽΡ‡Π° (ΠΏΠΎ-Ρ€Π°Π½ΠΎ Ρ‚Π΅ бяха освСтСни Π² Ρ‡Π΅Ρ€Π²Π΅Π½ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ създавашС Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ Π·Π° тяхната нСкорСктност).
  • ΠŸΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ HTTP Π΅ осигурСна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° с ΠΊΠΎΠ΄ 429 (Too Many Requests). Π—Π°Π²ΡŠΡ€ΡˆΠΈΠ»ΠΈΡ‚Π΅ с Ρ‚Π°ΠΊΠ°Π²Π° Π³Ρ€Π΅ΡˆΠΊΠ° заявки сСга сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ Π½Π΅ ΠΊΠ°Ρ‚ΠΎ Ρ„Π°Ρ‚Π°Π»Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° ΠΊΠ°Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°, Π·Π° която слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ трябва Π΄Π° сС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ опСрацията. ЗабавянСто ΠΏΡ€Π΅Π΄ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ сС Π·Π°Π΄Π°Π²Π° Ρ‡Ρ€Π΅Π· опцията β€žhttp.retryAfterβ€œ, броят повторСния β€” β€žhttp.maxRetriesβ€œ, Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ β€” β€žhttp.maxRetryTimeβ€œ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster