ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅ . 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
