ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΠ»ΡΠΌ Π²ΡΠΏΡΡΠΊΠΎΠΌ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ 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 «, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «git filter-branch » Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°). ΠΠ»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠΌΠΌΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° Π² «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
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru