Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ²Π° 583 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΈΠ·Π³ΠΎΡΠ²Π΅Π½ΠΈ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° 84 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 32 ΡΡΠ°ΡΡΠ²Π°Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ ΡΠ΅ Π΄ΠΎΠ±Π»ΠΈΠΆΠ°Π²Π° Π΄ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ»Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΠΈΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ°ΡΡ ΠΎΡ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Ρ Π½Π΅ΠΏΡΠ»Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. Π’ΠΈΠΏΠΈΡΠ½ΠΈΡΡ ΠΊΠ»ΠΎΠ½ΠΈΠ½Π³ ΠΊΠΎΠΏΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΡΠΊΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» Π² Ρ
ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅. ΠΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΌΠΎ ΠΎΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ° Π΄Π° ΡΠ»Π΅ΡΠ½ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ°ΠΌΠΎ Π½Π° ΡΠ°ΡΡ ΠΎΡ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎΡΠΎ Π΄ΡΡΠ²ΠΎ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ°, Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π²ΡΠ²Π΅ΠΆΠ΄Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° "sparse-checkout" ΠΈ Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ "--sparse" Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° "clone".
ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΡΡΠ΅Π· Π·Π°Π΄Π°ΡΠ°ΡΠ°
ΡΠΈΠ»ΡΡΠΈ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅Π½ΡΠΆΠ½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΡΠΈΡΡΠ° ββno-checkoutβ Π·Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ΡΠΎ Π½Π° Π»ΠΈΠΏΡΠ²Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Π·Π° ΠΏΠ»Π°ΡΠ°Π½Π΅, Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° core.sparseCheckout ΠΈ Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΡΠΏΠΈΡΡΠΊ Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΏΡΡΡ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° .git/info/sparse-checkout. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΡΠ΅ Π±Π΅Π· ΠΏΠ΅ΡΠ½Π° ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΠ΅ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π° 2 ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅:git clone --filter=blob:none --no-checkout /your/repository/here repo
$cd ΡΠ΅ΠΏΠΎ
$ cat >.git/info/sparse-checkout
/*
!/*
EOF
$ git config core.sparseCheckout 1
$ git ΠΏΠ»Π°ΡΠ°Π½Π΅.ΠΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° βgit sparse-checkoutβ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π½Π΅ΠΏΡΠ»Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄ΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
git clone --filter=blob:none --sparse /your/repository/here repo
git sparse-checkout set /path/to/check/outΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° sparse-checkout Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΡΠΈΡΠ° Π·Π° ΠΏΠ»Π°ΡΠ°Π½Π΅ (Π½Π°Π±ΠΎΡ), Π±Π΅Π· Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΡΡΠ½ΠΎ .git/info/sparse-checkout, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΡ ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΡΠΈΡΠ° (ΡΠΏΠΈΡΡΠΊ) ΠΈ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΈΠ»ΠΈ Π·Π°Π±ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΡΡΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΠ°Π½ΠΈΡ (ΡΠ°Π·ΡΠ΅ΡΠ΅ΡΠ΅ /Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅).
ΠΠ° Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈ ΡΠΏΠΈΡΡΡΠΈ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΈ, β
git config core.sparseCheckoutCone ", ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈ (Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ .gitignore, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π΄Π°Π»ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΡΠΈΡΠ° ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΄Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π³ΠΎΠ»ΡΠΌΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠΌΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ βA/B/Cβ ΠΈ ΡΡΠ»Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠ°Π½Π° Π² ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° βCβ, ΡΠΎΠ³Π°Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° sparseCheckoutCone, ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit sparse-checkout set A/B/ Cβ ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΡΡΠ»ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° βCβ, Π½ΠΎ ΠΎΡ βAβ ΠΈ βBβ ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ°ΡΡΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ βCβ. - ΠΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° (βgit rebase -hβ) ΡΠ° ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΊΡΠΌ ΠΎΠΏΡΠΈΡΡΠ° β--preserve-mergeβ, ΠΊΠΎΡΡΠΎ Π΅ ΠΎΡΡ
Π²ΡΡΠ»Π΅Π½Π° ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Π·Π° ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ.
git rebase --rebase-merges ". - ΠΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΡΠ΅ΡΠ»ΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π΄ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈΡΠ΅ ΡΠΏΠΈΡΡΡΠΈ, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡΡΠ° βgit format-patch βcover-from-description subjectβ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½Π°, ΠΏΡΡΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°Π³ΡΠ°Ρ ΠΎΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΡΠ΅ΠΌΠ° Π½Π° ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΠΎΠ½Π½ΠΎ ΠΏΠΈΡΠΌΠΎ Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π»Π΅ΠΏΠ΅Π½ΠΊΠΈ.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit apply -3wayβ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° βmerge.conflictStyleβ (βgit applyβ Π²Π΅ΡΠ΅ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΡΠΈΠ»Π° Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΎΡ merge.conflictStyle, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡ ΡΠ»Π΅Π΄ ΠΎΠΏΠΈΡ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ» Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ ΠΊΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ).
- ΠΠΎΠ΄ΡΡ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ "git diff/grep --show-function/-function-context" Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π΅Π·ΠΈΠΊΠΎΠ²ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ
ΠΠ»ΠΈΠΊΡΠΈΡ . - ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ ΠΊΡΠΌ "git add", "git commit", "git reset" ΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ - "-pathspec-from-file", ΠΊΠΎΡΡΠΎ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠΈΡΡΠΊ Ρ ΠΏΡΡΠΈΡΠ° ΠΎΡ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΏΠΎΡΠΎΠΊ , Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·Π±ΡΠΎΡΠ²Π°ΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄.
- ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Ρ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΡΠΈ ΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½ΡΠΈ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½. ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΡΡΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ, Π°ΠΊΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΎ Π² ΠΊΠΎΡΠ΅Π½Π° Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° βgit add -iβ, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΡ Perl Π½Π° C. ΠΠΎΠ΄ΠΎΠ±Π½Π° ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit add -pβ Π΅ Π² Ρ ΠΎΠ΄.
- ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit log βgraphβ Π΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π°, Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΉΠΊΠΈ ASCII ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ° Ρ ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. ΠΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π°, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΈΠ·ΠΊΡΠΈΠ²ΡΠ²Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΊΠ°ΡΡΠΈΠ½Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΡΡΠΈΡΠ° ΠΎΡΠ²ΡΠ΄ ΡΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΊΡΠ°ΠΉΠ½Π°ΡΠ° Π»ΠΈΠ½ΠΈΡ.
- ΠΠΏΡΠΈΡΡΠ° "git log --format=.." Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ,
ΡΠ°Π·ΡΠΈΡΠ΅Π½ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ»Π°Π³ΠΎΠ²Π΅ΡΠ΅ βl/Lβ, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ°ΠΌΠΎ ΡΠ°ΡΡΡΠ° ΠΎΡ ΠΈΠΌΠ΅ΠΉΠ» Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½Π° ΠΏΡΠ΅Π΄ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° β@β (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈΠΌΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΈΠΌΠ΅ΠΉΠ»ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½). - ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° βset-urlβ ΠΊΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit submoduleβ.
- Π’Π΅ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π·Π° ΠΏΡΠ΅Ρ
ΠΎΠ΄Π° ΠΊΡΠΌ
Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ SHA-2 Π²ΠΌΠ΅ΡΡΠΎ SHA-1.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru