ΠΈΠ·Π΄Π°Π΄Π΅Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΡΠ΅ΠΊΡΡ . Git Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈ Π²ΠΈΡΠΎΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ° Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠ°Π·ΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅ ΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅. ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ βΠ·Π°Π΄Π½ΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌβ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ΡΠ²Π½ΠΎ Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»Π°ΡΠ° ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½Π° ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΈΡ; ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Ρ ΡΠΈΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠΈΡΠΈ.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ° ΠΏΡΠΈΠ΅ΡΠΈ 544 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° 78 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 21 ΡΡΠ°ΡΡΠ²Π°Ρ Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ. :
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ, ΡΡΠ΅Π· ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°Π±ΠΎΡΠΈ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ°Π²Π°ΡΠ΅ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ ΡΡΡ
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ°ΠΊΡΠΎΡΠΈ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π°ΠΏΠΎΠΌΠ½ΡΡΠ΅ ΠΊΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, Π·Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π·Π°Π±Π°Π²ΡΠ½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ Π³ΠΎΠ»ΡΠΌΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ Π½Π° Π½ΠΎΠ² ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅, Π΄Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° ΠΏΡΠ΅ΡΠΈΠΊΡΠΈΡΠ΅ Π½Π° ΠΏΡΡΠΈΡΠ°ΡΠ° ΠΈ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΊΠ΅ΡΠ° Π½Π° Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠ²Π°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° index.version Π½Π° 4 ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ core.untrackedCache. ΠΠ°ΠΊΡΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° Π½Π΅ Π³ΡΠ±ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π² ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°, Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
git config feature.manyFiles true
- ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π³ΡΠ°Ρ Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ (commit-graph), ΠΏΡΠΈ ΠΊΠΎΠ΅ΡΠΎ Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΈΡ ΡΠΏΠΈΡΡΠΊ ΠΎΡ Ρ
Π΅ΡΠΎΠ²Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Ρ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΊΡΠΌ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π³ΡΠ°Ρ. ΠΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°, Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ ΠΎΡ Π΄ΠΈΡΠΊΠ°, Π·Π° Π΄Π° ΡΠ΅ ΡΡΡΡΡΡ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ, ΡΠΎ ΠΏΡΠΈ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π³ΡΠ°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π²ΡΡΠ·ΠΊΠΈ. ΠΡΠ΅Ρ
ΠΎΠ΄ΡΡ ΠΊΡΠΌ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π³ΡΠ°Ρ Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΈ Git Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΠΎΡΡΠΈ Π΄Π²ΡΠΊΡΠ°ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Ρ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅. ΠΠ° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎ Git 2.24 Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° "git gc".
ΠΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ commit-graph, ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΎΡΠΎ Ρ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Π·Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊ ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ commit-graph ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ (Β«git commit-graph writeΒ», Β«git commit-graph verifyΒ» ΠΈ Ρ.Π½.). ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡΡ Π·Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊ ΡΠ΅Π³Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° (Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ»Π΅Π΄Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΡΠΈΡΡΠ° Β«-[no-]progressΒ»). ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π΄ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ fetch.writeCommitGraph, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»Π° Ρ Π³ΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Β«git fetchΒ» (Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΈΡΠΈ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΡΠ΅ Π²Π»ΠΈΠ·Π°Ρ Π²Π΅Π΄Π½Π°Π³Π° Π² commit-graph Π±Π΅Π· Π½ΡΠΆΠ΄Π°ΡΠ° ΠΎΡ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° auto-gc);
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ β ««, ΠΊΠΎΡΡΠΎ Π΅ ΠΏΠΎ-ΠΏΡΠΎΡΡ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° «» Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ» ΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΡΠ°Π»ΠΎΠ³). ΠΠ° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΎΠΊΠΎΠΌΠΈΡΠ½ΠΎ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅, Π² Β«git filter-repoΒ» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π²ΡΡΡ
Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ ΠΏΠΎΡΠΎΠΊ.
Π€ΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Β«-path-{glob,regex}Β», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΠΏΡΠΎΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ. ΠΠΌΠ° ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Β«ΡΡΡΡΠ΅Π½Π΅ ΠΈ Π·Π°ΠΌΡΠ½Π°Β» ΠΈΠ»ΠΈ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, ΡΠΈΠΉΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ. ΠΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠΌΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π½ΠΎΠ² SHA-1 Ρ Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ Π½ΠΎΠ²ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΊΡΠΌ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΈΡ.
ΠΠ° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ (Π±ΡΠΎΠΉ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΏΠΎ ΡΠΈΠΏΠΎΠ²Π΅, Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ·ΠΈ, ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΡΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈ Ρ.Π½.) Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Β«-analyzeΒ». ΠΠ° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ callback ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ Π½Π° Python, ΡΡΠ΅Π· ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ ΠΊΠ°ΠΊΡΠΎ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅);
- ΠΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βend-of-optionsΒ», ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΈΡΠ΅ ΠΎΡ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° Β«-Β» ΠΈ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΠΊΠ°ΡΠΎ ΠΎΠΏΡΠΈΠΈ (Β«git log βend-of-options βsuper-dangerous-optionΒ»). ΠΠΊΠΎ Π² Π΅ΠΆΠ΅Π΄Π½Π΅Π²ΠΈΠ΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΅ΠΊΡΠ°Π½ΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ Β«git log βrefs/heads/βsuper-dangerous-option'Β», ΡΠΎ Π² ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°. ΠΠ±ΡΠΎΠΏΡΠΈΠ΅ΡΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π» βββ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«git log βend-of-options βsuper-dangerous-option ^master β path/to/fileΒ»);
- Π Β«git rebase βrebase-mergesΒ» ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠΏΡΠΈΠΈΡΠ΅ Β«βstrategyΒ» ΠΈ Β«βstrategy-optionΒ» Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ;
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Β«.git/hooks/pre-merge-commitΒ», ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΠ»Π΅Π΄ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ»ΠΈΠ²Π°Π½Π΅, Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π² ΠΊΠΎΠΌΠΈΡΠ°;
- Π Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠ²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ Β«git -c core.autocrlf=false add path/to/my/fileΒ», Π½ΠΎ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΠΎΡΠ½ΠΎΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Β«core.autocrlfΒ», ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ Tab ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Git ΠΊΠΎΠ΄Π΅ΠΊΡ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡΡ Π΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈΡΠ΅ Π½Π° «», ΠΏΡΠΈΠ»Π°Π³Π°Π½ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΄ΡΠ°ΡΠ° Π½Π° Linux, Eclipse, Freedesktop, GitLab, Ruby ΠΈ Kubernetes. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠ°Π²Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΡΡ Π½Π°ΡΠ° ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ, Π²ΡΠ·ΡΠ°ΡΡ, ΠΏΠΎΠ», ΡΠ΅Π»ΠΈΠ³ΠΈΠΎΠ·Π½ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡ, Π½ΠΈΠ²ΠΎ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎΡΠΈΠ°Π»Π΅Π½ ΡΡΠ°ΡΡΡ ΠΈ Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. Π ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΡΠ΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²Π° ΠΏΡΠΈΡΡΠ΅Π»ΡΠΊΠ°ΡΠ° ΡΠΎΡΠΌΠ° Π½Π° ΠΎΠ±ΡΡΠ²Π°Π½Π΅, ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ, ΡΡΠΏΡΠΈΡΠ°ΡΡΠ½ΠΎΡΡΡΠ° ΠΊΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ, Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ²Π½Π° ΠΊΡΠΈΡΠΈΠΊΠ° ΠΈ Π²Π·Π΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΡΠ»Π°ΡΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ. ΠΠ΅ ΡΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Ρ ΡΡΠΎΠ»ΠΈΠ½Π³, ΠΎΠ±ΠΈΠ΄Π½Π° ΡΠΎΡΠΌΠ° Π½Π° ΠΎΠ±ΡΡΠ²Π°Π½Π΅, ΠΎΠΏΠΈΡΠΈ Π·Π° ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΡΠ²Π°, Π½Π°ΡΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΎΡΡΡΠ° Π½Π° Π»ΠΈΡΠ½ΠΈΡ ΠΆΠΈΠ²ΠΎΡ, ΡΠ°Π·ΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠΈΡΠ°Ρ Π·Π° Π½Π΅ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΠΎ ΠΎΠ±ΡΡΠ²Π°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
