Π‘Π»Π΅Π΄ ΡΡΠΈ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΡΠ΅Π»ΠΈΠ·ΡΡ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅ Git 2.52. Git ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅ ΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅. ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ "Π·Π°Π΄Π½ΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ" ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ΡΠ²Π½ΠΎ Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»Π°ΡΠ° ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½Π° ΠΈΡΡΠΎΡΠΈΡ Π² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Ρ ΡΠΈΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠΈΡΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° Git ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· GPLv2+.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Π²ΠΈΠΏΡΡΠ΅ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ 637 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° 94 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (33 ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ ΡΡΠ°ΡΡΠ²Π°Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Git). ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΡΡΠΈ (1, 2, 3):
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° βgit last-modifiedβ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΠΊ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠΊΠ°Π·Π°Π½Π°ΡΠ° ΡΠ΅Π²ΠΈΠ·ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅, ΠΏΡΠ΅Π· ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. $ git last-modified HEAD b56f6dcd7b4c90192018e848d0810f091d092913 test.h 29330ae4b820147c98e723399e9438c8bee60a8a test1.c 573ad8917beb99dc643b6e7f5c117a294384a575 test2.c
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° βgit repoβ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ° Π΄Π²Π΅ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ β βgit repo infoβ ΠΈ βgit repo structureβ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈ Π±ΡΠΎΡΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ). $ git repo info object.format references.format object.format=sha1 references.format=reftable $ git repo structure | Π‘ΡΡΡΠΊΡΡΡΠ° Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ | Π‘ΡΠΎΠΉΠ½ΠΎΡΡ | | βββββββ | ββ | | * ΠΡΡΠ·ΠΊΠΈ | | | * ΠΡΠΎΠΉ | 1983 | | * ΠΠ»ΠΎΠ½ΠΎΠ²Π΅ | 4 | | * Π’Π°Π³ΠΎΠ²Π΅ | 1125 | | * Π Π΅ΠΌΠΎΠ½ΡΠΈ | 854 | | * ΠΡΡΠ³ΠΈ | 0 | | | | * ΠΠΎΡΡΡΠΏΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ | | | * ΠΡΠΎΠΉ | 518955 | | * ΠΠΎΠΌΠΈΡΠΈ | 77469 | | * ΠΡΡΠ²Π΅ΡΠ° | 188865 | | * ΠΠ»ΠΎΠ±ΠΎΠ²Π΅ | 251631 | | * Π’Π°Π³ΠΎΠ²Π΅ | 990 |
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit refsβ Π±ΡΡ
Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Ρ ΡΠ°Π·ΠΏΠΎΠΊΡΡΠ°Π½ΠΈΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΠΈ ΡΠ΅ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π²ΡΡΠ·ΠΊΠΈ (git for-each-ref, git show-ref, git update-ref ΠΈ git pack-refs):
- βgit refs optimizeβ β ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ βgit pack-refsβ).
- βgit refs listβ β ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΠΊ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²ΡΡΠ·ΠΊΠΈ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ βgit for-each-refβ ΠΈΠ»ΠΈ βgit show-refβ).
- βgit refs existsβ β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΡΠ·ΠΊΠ° (Π°Π½Π°Π»ΠΎΠ³ Π½Π° βgit show-ref βexistsβ).
- Π€ΠΎΡΠΌΠ°ΡΡΡ Π·Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΠΊΠ°ΠΊΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° Π±Π°Π·Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° SHA-1, ΡΠ°ΠΊΠ° ΠΈ Π½Π° SHA-256. Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit fast-importβ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΈΡΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΎΠΏΡΠΈΠΈ ββsigned-commits=<ΡΠ΅ΠΆΠΈΠΌ>β ΠΈ ββsigned-tags=<ΡΠ΅ΠΆΠΈΠΌ>β Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΠΈΡΠΈ ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΈΠΌΠΏΠΎΡΡΠ° (ΡΠ΅ΠΆΠΈΠΌΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ verbatim, warn-verbatim, warn-stri, strip ΠΈΠ»ΠΈ abort).
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit maintenanceβ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ βgeometricβ (βgit config set maintenance.strategy geometricβ), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. Π‘ΡΠ°Π²Π½Π΅Π½ΠΎ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠ°ΡΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit gcβ, Π½ΠΎΠ²Π°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈΠ·Π±ΡΠ³Π²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΡΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΎ ΡΠ΅Π·ΡΡΡΠΎΠ΅ΠΌΠΊΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ pack-ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (ΠΏΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π½Π° ΡΠ°ΡΡΠΈ ΠΈ Π±Π΅Π· ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΡΠΈΡΠΈΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈ).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit sparse-checkout cleanβ Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΡΠ΅Π· ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° Π½ΠΎΠ²ΠΎΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π° sparse-checkout, ΠΈ ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΈΡΡΡΡΠ²Π°Ρ Π² Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° sparse-checkout.
- ΠΠ° Π΄Π° ΡΠ΅ ΠΎΡΡΡΡΠ°Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΠΎΡ ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ°, Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° the_repository.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΎ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΠ»ΡΠΌΠΎΠ²ΠΈΡΠ΅ ΡΠΈΠ»ΡΡΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠ½Π° ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡΠ° ΠΊΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΠ° ΡΠ°Π»ΡΠΈΠ²ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΡΡΡΡΡΠ²Π°Ρ Π΅Π»Π΅ΠΌΠ΅Π½Ρ, Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°ΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΅Π»Π΅ΠΌΠ΅Π½Ρ. ΠΠ»ΡΠΌΠΎΠ²ΠΈΡΠ΅ ΡΠΈΠ»ΡΡΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π² ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠΈ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΊΠΈ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΡΠΈΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, βfoo/bar/*/baz.β
- ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit describeβ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ Ρ 30%, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΠ°ΡΠΊΠΈ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Π βgit remote renameβ ΡΠ° ΡΡΠΊΠΎΡΠ΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅. Π βgit ls-filesβ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅. ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ ΡΡΠΊΠΎΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit log -Lβ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΡΡΠΈ-ΡΡΠΎΠ²Π½Π΅Π²ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΈΡΠΈ. ΠΠ·Π²ΡΡΡΠ΅Π½ΠΈ ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° xdiff.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust Π·Π° Π½ΡΠΊΠΎΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°. ΠΠΎΠ΄Π° Π½Π° Rust Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π·Π° Π΄Π° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π΅ ΡΠ»Π°Π³ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ WITH_RUST. Π Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° ΠΏΡΠ΅ΠΎΡΠΌΠΈΡΠ»ΡΠ½Π΅ Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Git Π½Π° Rust ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Rust ΠΊΡΠΌ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π² Git 3.0.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΡΠΏΠΈΡΡΠΊΡΡ Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΊΠ»ΠΎΠ½a Git 3.0. Π Git 3.0 Π΅ ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° init.defaultBranch ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ βmainβ, Ρ.Π΅. Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉΡΠ΅, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit initβ, ΠΊΠ»ΠΎΠ½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ° βmainβ, Π° Π½Π΅ βmasterβ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° ΠΏΡΠ΅Ρ ΠΎΠ΄ΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΊΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΡΠ° Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ SHA-256 ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ° ΡΠ»Π΅ΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° SHA-1 ΠΈ SHA-256 Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ Π΅Π΄ΠΈΠ½ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ push ΠΈ pull ΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄ΡΡΠ³ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
