Π€Π°ΠΉΠ» .gitignoreΒ β ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Git
Git ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠ΅Ρ Π½ΠΈΠΆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ².
- ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» β ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ ΠΈΠ»ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅.
- ΠΠ΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» β ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ ΠΈΠ»ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅.
- ΠΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» β ΡΠ°ΠΉΠ», ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ Git ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ β ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²:
- ΠΊΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅
/node_modules
ΠΈΠ»ΠΈ/packages
; - ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Ρ
.o
,.pyc
ΠΈ.class
; - ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π΄Π»Ρ Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΡΠ±ΠΎΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
/bin
,/out
/target
; - ΡΠ°ΠΉΠ»Ρ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
.
,log
.lock
ΠΈΠ»ΠΈ.tmp
; - ΡΠΊΡΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
.DS_Store
ΠΈΠ»ΠΈThumbs.db
; - Π»ΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ IDE, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
.idea/workspace.xml
.
ΠΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ .gitignore
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π Git Π½Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²: Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΡΠ½ΡΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» .gitignore
, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π² Π½Π΅ΠΌ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ. Π€Π°ΠΉΠ»Ρ .gitignore
ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ.
- ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Git
- Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Git
- ΠΠ±ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ .gitignore Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- ΠΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Git
- ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Git
- ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π½Π΅Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
- ΠΠΎΠΌΠΌΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
- Π‘ΠΊΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅
- ΠΡΠ»Π°Π΄ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² .
gitignore
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Git
ΠΠ»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π² .gitignore
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ.
Π¨Π°Π±Π»ΠΎΠ½ | ΠΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ | ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅* |
---|---|---|
**/logs | logs/debug.log logs/monday/foo.bar build/logs/debug.log | ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π²Π΅ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. |
**/logs/debug.log | logs/debug.log build/logs/debug.log Π½ΠΎ Π½Π΅ logs/build/debug.log | ΠΠ²Π΅ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. |
*.log | debug.log foo.log . logs/debug.log | ΠΠ΄Π½Π° Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠ° β ΡΡΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ Π·Π½Π°ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ, ΡΠ°ΠΊ ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡ. |
*.log !important.log | debug.log trace.log Π½ΠΎ Π½Π΅ important.log logs/important.log | ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΎΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΡΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅, ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. |
*.log !important/*.log trace.* | debug.log important/trace.log Π½ΠΎ Π½Π΅ important/debug.log | Π¨Π°Π±Π»ΠΎΠ½Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°, ΡΠ½ΠΎΠ²Π° Π±ΡΠ΄ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°Π½Π΅Π΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ»ΠΎ ΠΎΡΠΌΠ΅Π½Π΅Π½ΠΎ.![]() |
/debug.log | debug.log Π½ΠΎ Π½Π΅ logs/debug.log | ΠΠΎΡΠ°Ρ ΡΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. |
debug.log | debug.log logs/debug.log | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°ΠΉΠ»Π°ΠΌ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΌΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ |
debug?.log | debug0.log debugg.log Π½ΠΎ Π½Π΅ debug10.log | ΠΠ½Π°ΠΊ Π²ΠΎΠΏΡΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠ³ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. |
debug[0-9].log | debug0.log debug1.log Π½ΠΎ Π½Π΅ debug10.log | ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. |
debug[01].log | debug0.log debug1. Π½ΠΎ Π½Π΅ debug2.log debug01.log | ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°. |
debug[!01].log | debug2.log Π½ΠΎ Π½Π΅ debug0.log debug1.log debug01.log | ΠΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π»ΡΠ±ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΡΠΎΠΌΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°. |
debug[a-z].log | debuga.log debugb.log Π½ΠΎ Π½Π΅ debug1.log | ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΈΡΡΠΎΠ²ΡΠΌΠΈ ΠΈΠ»ΠΈ Π±ΡΠΊΠ²Π΅Π½Π½ΡΠΌΠΈ. |
logs | logs logs/debug.log logs/latest/foo.bar build/logs build/logs/debug.log | ΠΠ΅Π· ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌ, ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Ρ ΡΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.![]() |
logs/ | logs/debug.log
build/logs/foo.bar build/logs/latest/debug.log | ΠΠΎΡΠ°Ρ ΡΠ΅ΡΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ (Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ), Π±ΡΠ΄Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ |
logs/ !logs/important.log | logs/debug.log logs/important.log | ΠΠΈΠ½ΡΡΠΎΡΠΊΡ! Π Π°Π·Π²Π΅ ΡΠ°ΠΉΠ» logs/important.log ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ»Π΅Π²Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ Π½Π· ΡΠΏΠΈΡΠΊΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ
?ΠΠ΅Ρ! ΠΠ·-Π·Π° ΡΡΡΠ°Π½Π½ΠΎΡΡΠ΅ΠΉ Git, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ |
logs/**/debug.log | logs/debug.log logs/monday/debug. logs/monday/pm/debug.log | ΠΠ²Π΅ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡ. |
logs/*day/debug.log | logs/monday/debug.log logs/tuesday/debug.log but not logs/latest/debug.log | ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π² ΠΈΠΌΠ΅Π½Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ². |
logs/debug.log | logs/debug.log Π½ΠΎ Π½Π΅ debug.log build/logs/debug.log | Π¨Π°Π±Π»ΠΎΠ½Ρ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ» Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π·Π°Π΄Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. (ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΡΡΡ ΡΠ΅ΡΡΡ, Π½ΠΎ ΠΎΠ½Π° Π½ΠΈ Π½Π° ΡΡΠΎ ΠΎΡΠΎΠ±ΠΎ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ.) |
ΠΠ²Π΅ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΈ (**) ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ Π²Π°Ρ ΡΠ°ΠΉΠ» .gitignore Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΈ. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² .gitignore, ΠΏΡΠΎΡΡΠΎ ΠΌΡΡΠ»Π΅Π½Π½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠ»ΠΎΠ²Π° Β«ΠΊΠΎΡΠ΅Π½Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΒ» Π½Π° Β«ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ°ΠΉΠ» .
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» #, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ°ΠΉΠ» .gitignore
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
#Β ignoreΒ allΒ logs
*.log
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ
ΡΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² .gitignore
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΊΠΎΡΡΡ ΡΠ΅ΡΡΡ (\):
#Β ignoreΒ theΒ fileΒ literallyΒ namedΒ foo[01].txt
foo\[01\].txt
ΠΠ±ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ .gitignore Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Git Π·Π°Π΄Π°ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ .gitignore
Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² .gitignore
.gitignore
ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ». ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ (ΠΈ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» .
gitignore
Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° .gitignore
Π΄Π»Ρ Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π ΡΠ°ΠΉΠ» .gitignore
, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.ΠΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Git
Π ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ .git/info/exclude
, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΠΈ Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Ρ
ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ
Π²
, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΊΠΎΠΌΠΌΠΈΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Git
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Git, Π½Π°ΡΡΡΠΎΠΈΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Git core.excludesFile
. ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΡΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» .gitignore
, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π΅Π³ΠΎ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ (ΠΏΠΎΡΠΎΠΌ Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΡΠ΅ Π½Π°ΠΉΡΠΈ). ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git config
:
$Β touchΒ ~/.gitignore
$Β gitΒ configΒ --globalΒ core.excludesFileΒ ~/.gitignore
ΠΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, .DS_Store
ΠΈ thumbs.db
) ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π½Π΅Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
Π§ΡΠΎΠ±Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ», Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ ΠΊΠΎΠΌΠΌΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π² .
. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ gitignore
git rm
Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ --cached
, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ».
$Β echoΒ debug.logΒ >>Β .gitignore
Β Β
$Β gitΒ rmΒ --cachedΒ debug.log
rmΒ 'debug.log'
Β Β
$Β gitΒ commitΒ -mΒ "StartΒ ignoringΒ debug.log"
ΠΠΏΡΡΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΡ --cached
, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠ°ΠΊ ΠΈ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΠΌΠΌΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git add
Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -f
(ΠΈΠ»ΠΈ --force
):
$Β catΒ .gitignore
*.log
Β Β
$Β gitΒ addΒ -fΒ debug.log
Β Β
$Β gitΒ commitΒ -mΒ "ForceΒ addingΒ debug.log"
ΠΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Ρ
ΠΎΡΠΎΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π·Π°Π΄Π°Π½ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, *.log
), Π½ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ΅ Π»ΡΡΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°Π΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°:
$Β echoΒ !debug.logΒ >>Β .gitignore
Β Β
$Β catΒ .gitignore
*.log
!debug.log
Β Β
$Β gitΒ addΒ debug.log
Β Β
$Β gitΒ commitΒ -mΒ "AddingΒ debug.log"
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ·ΡΠ°ΡΠ΅Π½ ΠΈ ΠΏΠΎΠ½ΡΡΠ΅Π½, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
Π‘ΠΊΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΠΎΠΌΠ°Π½Π΄Π° git stash
β ΡΡΠΎ ΠΌΠΎΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Git, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ
ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git stash
ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅Ρ
ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΡΡ Git. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git stash Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ —all, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΈ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ»Π°Π΄ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² .gitignore
ΠΡΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ .gitignore
ΡΠ»ΠΎΠΆΠ½Ρ ΠΈΠ»ΠΈ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² .gitignore
, Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ». ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git check-ignore
Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -v
(ΠΈΠ»ΠΈ --verbose
), ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
$Β gitΒ check-ignoreΒ -vΒ debug.log
.gitignore:3:*.logΒ Β debug.log
ΠΡΠ²ΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ:
<fileΒ containingΒ theΒ pattern>Β :Β <lineΒ numberΒ ofΒ theΒ pattern>Β :Β <pattern>Β Β Β Β <fileΒ name>
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git check-ignore
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Π°ΠΌ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠΎΡΠ½Π΅Π²ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ· — Π‘Π»ΠΎΠ²Π°ΡΠ½ΡΠΉ Π·Π°ΠΏΠ°Ρ ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π³Π»ΠΎΡΡΠΈ
ΠΠΎΡΠ½Π΅Π²ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ·
Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ?
ΠΠΎΡΠ½Π΅Π²ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ· β ΡΡΠΎ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠ° ΠΈ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠ½Π΅ΠΉ Π² Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌ ΡΠ»ΠΎΠ²Π΅. Π£ΡΠ°ΡΠΈΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ²ΡΠ·Π°ΡΡ ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π° Ρ Π½ΠΎΠ²ΡΠΌ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΡ
ΠΎΠ΄ΡΡΠ²Π΅ ΠΊΠΎΡΠ½Ρ (ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°/ΡΡΡΡΠΈΠΊΡΠ°). ΠΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Β«ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ-ΠΏΠΎΠ΄ΡΠΎΡΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈ Π·Π½Π°Π½ΠΈΡ ΠΎΠ± Π°ΡΡΠΈΠΊΡΠ°Ρ
Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ
ΡΠ»ΠΎΠ²Β» (Pacheco, & Goodwin, 2013). ΠΠΎ ΠΊΠ°ΠΊ Π²Ρ, ΠΊΠ°ΠΊ ΡΡΠΈΡΠ΅Π»Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈΡ
ΡΠ½ΡΡ
ΡΡΠ΅Π½ΠΈΠΊΠΎΠ² ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π°Π½Π°Π»ΠΈΠ· Π² ΠΊΠ»Π°ΡΡΠ΅? ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ, Β«ΠΎΠ±ΡΡΠ°Ρ ΡΡΠ°ΡΠΈΡ
ΡΡ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΊΠΎΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²Π½ΡΡ
ΠΏΡΡΠΌΡΡ
ΡΠΊΠ°Π·Π°Π½ΠΈΠΉ, Π½Π°ΡΡΠ΄Ρ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΈΠ· ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ², ΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎΠΎΡΡΡΡΡ ΡΡΠ°ΡΠΈΡ
ΡΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ»ΠΎΠ²Β» (Ebbers, & Denton, 2008). ΠΡΠΈΠΌΠ΅ΡΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΡΠ½ΡΠΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΠ°ΡΠ΅ΠΊΠΎ ΠΈ ΠΡΠ΄Π²ΠΈΠ½ (2013), ΠΊΠΎΡΠ΅Π½Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ, ΡΠ΅ΠΌ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΈΠΊΡ. ΠΠΎΠΏΡΠΎΡΠΈΠ² ΡΡΠ°ΡΠΈΡ ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΊΠΎΡΠ½ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ»ΠΎΠ², ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΌΡΡΠ»Π΅Π½Π½ΡΡ , Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°ΠΌΠΈ ΠΈ ΡΡΡΡΠΈΠΊΡΠ°ΠΌΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠΎΡΠ΅Π½Ρ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½ΠΈΠΆΠ΅. ΠΠ²Π° ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΊΠΎΡΠ½Ρ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΎΡ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ ΠΈ Π³ΡΠ΅ΡΠ΅ΡΠΊΠΈΡ ΡΠ»ΠΎΠ². Π’Π°Π±Π»ΠΈΡΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΠΈΠ΅ΡΡ ΠΈΡΠΊΠ°Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΡΠΈΡΠΎΠ΄Ρ ΠΊΠΎΡΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΠΎΠ²ΠΎ Β«spec, spectΒ», ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π΅ Β«ΡΠΌΠΎΡΡΠ΅ΡΡΒ», Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ»ΠΎΠ²Π°Ρ Β«ΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΒ» ΠΈ Β«Π·ΡΠΈΡΠ΅Π»ΡΒ». ΠΠ²Π° ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Β«ΡΠΌΠΎΡΡΠ΅ΡΡΒ». ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠ°ΡΠΈΠ΅ΡΡ ΡΠΎΡΡΠ°Π²ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΡΠ΅Π½Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ. |
ΠΠΈΠ΄Π΅ΠΎ ΠΡΠΈΠΌΠ΅ΡΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΡΠ½Π΅ΠΉ
ΠΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΡΠ½ΡΠΌΠΈ ΠΈ ΡΡΡΡΠΈΠΊΡΠ°ΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ±ΡΠ°Π½Π° ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΠΈΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π° ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΡΠ΅Π½Ρ. ΠΠ½ Π΄Π»ΠΈΠ½Π½ΡΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π±Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΡΠ½Π΅ΠΉ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠ½ Π½Π΅ Π²Π΄Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΊΡΠΎΠΌΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
http://education-portal.com/academy/lesson/science-vocabulary-concepts-study-skills-word-parts.html#lesson |
ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΡΠ½Π΅ΠΉ
https://academic.cuesta.edu/acasupp/as/506.HTMΠΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠΈΡ ΠΊΠΎΡΠ½Π΅Π²ΡΡ ΡΠ»ΠΎΠ²
http://www.literacyleader.com/sites/litlead.essdack .org/files/prefix%20suffix%20root.pdf
ΠΠΎΡΠ½ΠΈ ΡΠ»ΠΎΠ² ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎ ΠΊΠ»Π°ΡΡΠ°ΠΌ
http://www.lethbridgecollege.net/elearningcafe/images/stories/pdf/structural_analysis.pdf
ΠΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ»ΠΎΠ²
http ://www.lethbridgecollege.net/elearningcafe/index.php/studyskills/vocabulary-development/structural-analysis-exercises
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Ρ ΠΊΠΎΡΠ½ΡΠΌΠΈ
http://www.teachercreatedmaterials.com/curriculum_files/pdfs/newsevents/Teaching%20Vocabulary%20from%20Word%20Roots_An%20Instructional%20Routine%20for%20Elementary%20Grades.pdf
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ½Π΅ΠΉ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΊΠΎΠ»Π΅ ΡΡΠΎΠ²Π΅Π½Ρ
Π‘ΡΡΠ»ΠΊΠΈ
Ebbers, S.M., & Denton, C.A. (2008). ΠΠΎΡΠ½Π΅Π²ΠΎΠ΅ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΠ½ΠΎΠΌΡ Π·Π°ΠΏΠ°ΡΡ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡ ΡΡ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°, ΠΈΡΠΏΡΡΡΠ²Π°ΡΡΠΈΡ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ Ρ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠ°ΡΠ΅ΠΊΠΎ, Π.Π., ΠΈ ΠΡΠ΄Π²ΠΈΠ½, Π.Π. (2013). Π‘ΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Π΄Π²Π° ΠΈ Π΄Π²Π°: ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΡΡΠ°ΡΠΈΡ ΡΡ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΡΠΊΠΎΠ»Ρ Π΄Π»Ρ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΠ»ΠΎΠ². Journal Of Adolescent & Adult Literacy , 56 (7), 541-553. doi:10.1002/JAAL.181
ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ: ΠΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ | Next.js
ΠΡΠΈΠΌΠ΅ΡΡ- ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ i18n
Next.js ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ (i18n) ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Ρ v10.0.0
. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ, Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°, ΠΈ Next.js Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ i18n Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ i18n, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ react-intl
, react-i18next
, lingui
, rosetta
, next-intl
, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ-ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ
, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ -multilingual
, typesafe-i18n
, tolgee
ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π° ΡΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π»ΠΎΠΊΠ°Π»Π΅ΠΉ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ i18n
Π² ΡΠ°ΠΉΠ» next.config.js
.
ΠΠΎΠΊΠ°Π»ΠΈ β ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ UTS, ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ.
ΠΠ±ΡΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ·ΡΠΊΠ°, ΡΠ΅Π³ΠΈΠΎΠ½Π° ΠΈ Π°Π»ΡΠ°Π²ΠΈΡΠ°, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π΄Π΅ΡΠΈΡΠΎΠΌ: ΡΠ·ΡΠΊ-ΡΠ΅Π³ΠΈΠΎΠ½-ΡΡΠ΅Π½Π°ΡΠΈΠΉ
. Π Π΅Π³ΠΈΠΎΠ½ ΠΈ ΡΠΊΡΠΈΠΏΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ. ΠΡΠΈΠΌΠ΅Ρ:
-
en-US
β Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² Π‘Π¨Π -
Π½Π»-Π½Π»
— ΠΠΈΠ΄Π΅ΡΠ»Π°Π½Π΄ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π³ΠΎΠ²ΠΎΡΡΡ Π² ΠΠΈΠ΄Π΅ΡΠ»Π°Π½Π΄Π°Ρ -
nl
— Π½ΠΈΠ΄Π΅ΡΠ»Π°Π½Π΄ΡΠΊΠΈΠΉ, ΡΠ΅Π³ΠΈΠΎΠ½ Π½Π΅ ΡΠΊΠ°Π·Π°Π½
ΠΡΠ»ΠΈ Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ nl-BE
ΠΈ ΠΎΠ½Π° Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° nl
, Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΈΠ»ΠΈ Π½Π° Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½Ρ ΡΡΡΠ°Π½Ρ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΏΠ°ΡΠ½ΡΠ΅.
ΠΌΠΎΠ΄ΡΠ»Ρ.ΡΠΊΡΠΏΠΎΡΡ = { i18n: { // ΠΡΠΎ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ // Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ: ['en-US', 'fr', 'nl-NL'], // ΠΡΠΎ Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΈ // ΠΏΡΡΡ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΠΌ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.`/ΠΏΡΠΈΠ²Π΅Ρ` Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'en-US', // ΠΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π»ΠΎΠΊΠ°Π»Π΅ΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ // Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ (ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ) // ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠ±Π΄ΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Π° Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. "fr.example.com". Π΄ΠΎΠΌΠ΅Π½Ρ: [ { Π΄ΠΎΠΌΠ΅Π½: 'example.com', Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'en-US', }, { Π΄ΠΎΠΌΠ΅Π½: 'example.nl', ΡΠ·ΡΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'nl-NL', }, { Π΄ΠΎΠΌΠ΅Π½: 'example.fr', ΡΠ·ΡΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'fr', // Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ http // Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Ρ http Π²ΠΌΠ΅ΡΡΠΎ https http: ΠΏΡΠ°Π²Π΄Π°, }, ], }, }
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ: ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΏΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π°.
ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΏΡΡΠΈ
ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΏΡΡΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ Π² ΠΏΡΡΡ URL.
ΠΌΠΎΠ΄ΡΠ»Ρ.ΡΠΊΡΠΏΠΎΡΡ = { i18n: { Π»ΠΎΠΊΠ°Π»ΠΈ: ['en-US', 'fr', 'nl-NL'], Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'en-US', }, }
ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ en-US
, fr
ΠΈ nl-NL
Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, Π° en-US
ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ
pages/blog.js
Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ URL:
-
/blog
-
/ΡΡ/Π±Π»ΠΎΠ³
-
/nl-nl/Π±Π»ΠΎΠ³
ΠΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°.
ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π°
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²:
module.exports = { i18n: { Π»ΠΎΠΊΠ°Π»ΠΈ: ['en-US', 'fr', 'nl-NL', 'nl-BE'], Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'en-US', Π΄ΠΎΠΌΠ΅Π½Ρ: [ { // ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠ±Π΄ΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Π° Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ // Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ www.example.com ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ Ρ ΠΎΡΡΠ°. Π΄ΠΎΠΌΠ΅Π½: 'example.com', Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'en-US', }, { Π΄ΠΎΠΌΠ΅Π½: 'example.fr', ΡΠ·ΡΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'fr', }, { Π΄ΠΎΠΌΠ΅Π½: 'example.nl', ΡΠ·ΡΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 'nl-NL', // ΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ // Π² ΡΡΠΎΡ Π΄ΠΎΠΌΠ΅Π½ Π»ΠΎΠΊΠ°Π»ΠΈ: ['nl-BE'], }, ], }, }
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΈΡ/blog.
, Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ URL-Π°Π΄ΡΠ΅ΡΠ°: js
-
example.com/blog
-
www.example.com/blog
-
ΠΏΡΠΈΠΌΠ΅Ρ.fr/Π±Π»ΠΎΠ³
-
ΠΏΡΠΈΠΌΠ΅Ρ.nl/Π±Π»ΠΎΠ³
-
ΠΏΡΠΈΠΌΠ΅Ρ.nl/nl-BE/Π±Π»ΠΎΠ³
ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ /
), Next.js ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Accept-Language
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½.
ΠΡΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° Π»ΠΎΠΊΠ°Π»Ρ, ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π½Π°:
- ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΏΡΡΠΈ: ΠΡΡΡ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΠΈ
- ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ: ΠΠΎΠΌΠ΅Π½ Ρ ΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΎΠ²ΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Accept-Language
fr;q=0.9
ΠΏΠΎΡΠ΅ΡΠ°Π΅Ρ example.
, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° com
example.fr
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ Π΄ΠΎΠΌΠ΅Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π»ΠΎΠΊΠ°Π»Ρ fr
.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Sub-path Routing ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π½Π° /fr
.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΠΊ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Next.js 12 ΠΈ ΠΠ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΠ°ΠΉΠ» next.config.js
Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ·ΡΠΊΠΎΠ². ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π»ΠΎΠΊΠ°Π»Ρ Β«ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡΒ»
Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠ½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ.
ΠΌΠΎΠ΄ΡΠ»Ρ.ΡΠΊΡΠΏΠΎΡΡ = { i18n: { Π»ΠΎΠΊΠ°Π»ΠΈ: ['ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ', 'en', 'de', 'fr'], defaultLocale: 'ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ', localeDetection: Π»ΠΎΠΆΡ, }, ΡΡΠ΅ΠΉΠ»ΠΈΠ½Π³ΡΠ»ΡΡ: ΠΏΡΠ°Π²Π΄Π°, }
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ:
import { NextRequest, NextResponse } from 'next/server' const PUBLIC_FILE = /\.(.*)$/ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅: NextRequest) { Π΅ΡΠ»ΠΈ ( req.nextUrl.pathname.startsWith('/_next') || req.nextUrl.pathname.includes('/api/') || PUBLIC_FILE.test(req.nextUrl.pathname) ) { Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ } Π΅ΡΠ»ΠΈ (req.nextUrl.locale === 'ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ') { const locale = req.cookies.get('NEXT_LOCALE')?.value || 'en' Π²Π΅ΡΠ½ΡΡΡ NextResponse.redirect( Π½ΠΎΠ²ΡΠΉ URL(`/${locale}${req.nextUrl.pathname}${req.nextUrl.search}`, req.url) ) } }
ΠΡΠΎ ΠΠ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌ API ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΡΡΠΈΡΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π΄Π΅Π»Π°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΌΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π° Π½Π°Ρ ΠΏΡΠ΅ΡΠΈΠΊΡ /en
.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΠΈ
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
module.exports = { i18n: { localeDetection: Π»ΠΎΠΆΡ, }, }
ΠΠΎΠ³Π΄Π° Π΄Π»Ρ localeDetection
Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false
Next. js Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ Π»ΠΈΠ±ΠΎ ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°, Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΡΡΠΈ ΠΊ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ Next.js. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Ρ
ΡΠΊΠ° useRouter()
Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
-
Π»ΠΎΠΊΠ°Π»Ρ
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π»ΠΎΠΊΠ°Π»Ρ. -
Π»ΠΎΠΊΠ°Π»Π΅ΠΉ
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ. -
defaultLocale
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π»ΠΎΠΊΠ°Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ ΡΡΡΠ°Π½ΠΈΡ Ρ getStaticProps
ΠΈΠ»ΠΈ getServerSideProps
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ getStaticPaths
ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ΄ Π»ΠΎΠΊΠ°Π»ΡΠΌΠΈ
ΠΈ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ defaultLocale ΠΏΠΎΠ΄ defaultLocale
.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ next/link
ΠΈΠ»ΠΈ next/router
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΎΠΊΠ°Π»ΡΠΌΠΈ.
ΠΠ»Ρ next/link
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ββΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π»ΠΎΠΊΠ°Π»ΠΈ
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° ΠΊ Π΄ΡΡΠ³ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ. ΠΡΠ»ΠΈ Π½Π΅Ρ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ, ΡΠ΅ΠΊΡΡΠΈΠΉ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ ΠΈΠ· 'Π΄Π°Π»Π΅Π΅/ΡΡΡΠ»ΠΊΠ°' ΡΡΠ½ΠΊΡΠΈΡ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ IndexPage (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) { Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ( <Π‘ΡΡΠ»ΠΊΠ° href="/another" locale="fr"> Π / ΡΡ / Π΄ΡΡΠ³ΠΎΠΉ Π‘ΡΡΠ»ΠΊΠ°> ) }
ΠΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² next/router
ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π»ΠΎΠΊΠ°Π»Ρ
, ΠΊΠΎΡΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
import {useRouter} ΠΈΠ· 'ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ/ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ' ΡΡΠ½ΠΊΡΠΈΡ ΡΠΊΡΠΏΠΎΡΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ IndexPage (ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ) { ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ = useRouter() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ( <Π΄Π΅Π» onClick={() => { router.push('/Π΄ΡΡΠ³ΠΎΠΉ', '/Π΄ΡΡΠ³ΠΎΠΉ', {Π»ΠΎΠΊΠ°Π»Ρ: 'fr'}) }} > ΠΊ / ΡΡ / Π΄ΡΡΠ³ΠΎΠΌΡ