ΠΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Git Push: ΠΡΠ»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ
Git Π΅ Π³ΡΡΠ±Π½Π°ΠΊΡΡ Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΠΈ ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈΡΠ΅ Ρ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΅ΠΊΠΈΠΏ, Π²Π½Π΅Π΄ΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΎΠ²Π»Π°Π΄ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° git push Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ. Π’ΠΎΠ²Π° ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π²ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π° Ρ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ β ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄ΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ β Π·Π° Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΡΠ° ΡΠΈ Ρ ΡΠ²Π΅ΡΠ΅Π½ΠΎΡΡ.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Git Push ΠΈ Π·Π°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ?
ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° git push ΠΊΠ°ΡΠ²Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ ΠΎΡ Π»ΠΎΠΊΠ°Π»Π½ΠΎΡΠΎ Π²ΠΈ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π² ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΏΡΠ°Π²Π΅ΠΉΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈ, CI/CD ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ ΠΈ ΡΡΠ΅Π΄ΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. ΠΠ΅Π· Π½Π΅Ρ Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅, ΠΎΡΡΠ°Π²Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° Π²ΠΈ ΠΌΠ°ΡΠΈΠ½Π°.
ΠΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΈΠΏΠΈΡΠ½ΠΈΡΡ Π²ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ²Π°:
- ΠΠΎΠΊΠ°Π»Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
- ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΊΠΎΠΌΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ
- ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΈΠΌ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (GitHub, GitLab, Bitbucket ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Ρ ΠΎΡΡΠ²Π°Π½ Git ΡΡΡΠ²ΡΡ)
ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° git push Π΅ ΠΌΠΎΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° Π²ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΎΡΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎΡΠΎ ΠΉ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ β Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π°Π³ΠΎΠ²Π΅ΡΠ΅, Π³ΡΠ°Π½ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ β Π΅ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π²Π° ΠΌΠ»Π°Π΄ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ ΠΎΠΏΠΈΡΠ½ΠΈΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ.
> Π‘ΡΠ²Π΅Ρ Π·Π° Ρ ΠΎΡΡΠΈΠ½Π³: ΠΠΊΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Git, Π½Π° ΡΠ°Π±ΠΎΡΠ΅Ρ ΡΡΡΠ²ΡΡ, Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½Π° ΡΡΠ΅Π΄Π° Π΅ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. AlexHost VPS Π₯ΠΎΡΡΠΈΠ½Π³ Π²ΠΈ Π΄Π°Π²Π° ΠΏΡΠ»Π΅Π½ root Π΄ΠΎΡΡΡΠΏ, SSD ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡΡΠ° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Git hooks, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ.
ΠΡΠ½ΠΎΠ²Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Git Push
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΅ ΠΏΡΠΎΡΡ:
git push <remote> <branch><remote>β ΠΠΌΠ΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠΎ ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΡ, ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ°origin.<branch>β ΠΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π°, ΠΊΠΎΠΉΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅, ΠΊΠ°ΡΠΎmain,masterΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΊΠ»ΠΎΠ½.
ΠΡΠΈΠΌΠ΅Ρ:
git push origin mainΠ’ΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ Π²ΠΈ ΠΊΠ»ΠΎΠ½ main ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ origin.
Π‘ΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Git Push
Π‘ΡΡΠΏΠΊΠ° 1: Π£Π²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎΡΠΎ Π²ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΅ Π°ΠΊΡΡΠ°Π»Π½ΠΎ
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅, Π²ΠΈΠ½Π°Π³ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΡΠΈ ΠΊΠ»ΠΎΠ½ Ρ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈΡ, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ git pull, Π·Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
git pull origin mainΠ’ΠΎΠ²Π° ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΈΡΠΈ ΠΎΡ ΠΊΠ»ΠΎΠ½Π° main Π½Π° origin ΠΈ Π³ΠΈ ΡΠ»ΠΈΠ²Π° Π² ΡΠ΅ΠΊΡΡΠΈΡ Π²ΠΈ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΊΠ»ΠΎΠ½. ΠΡΠΎΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΠΏΠΊΠ° Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΈΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° ΠΎΡΡ
Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΡΠΊΠ°Π½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ.
Π‘ΡΡΠΏΠΊΠ° 2: ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠ°ΠΉΡΠ΅ ΠΈ ΠΊΠΎΠΌΠΈΡΠ½Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΈ
Git ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΊΠΎΠΌΠΈΡΠ½Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ.
ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠ°ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
git add .. (ΡΠΎΡΠΊΠ°ΡΠ°) Π΄ΠΎΠ±Π°Π²Ρ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ ΠΈ Π½ΠΎΠ² ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΊΡΠΌ ΠΎΠ±Π»Π°ΡΡΡΠ° Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅. ΠΠ° Π΄Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
git add path/to/specific-file.jsΠΠΎΠΌΠΈΡΠ½Π΅ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Ρ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
git commit -m "Add user authentication feature with JWT support"ΠΠΎΠ±ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΊΠΎΠΌΠΈΡ Π΅ ΠΎΡ ΡΠ΅ΡΠ°Π²Π°ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π’ΠΎ ΡΡΡΠ±Π²Π° ΡΡΠ½ΠΎ Π΄Π° ΠΎΠΏΠΈΡΠ²Π° *ΠΊΠ°ΠΊΠ²ΠΎ* ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΈ *Π·Π°ΡΠΎ*, Π° Π½Π΅ ΡΠ°ΠΌΠΎ *ΠΊΠ°ΠΊ*. Π’ΠΎΠ²Π° ΡΡΠ°Π²Π° Π±Π΅Π·ΡΠ΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ°, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π³ΡΠ΅ΡΠΈΠΈ ΠΈΠ»ΠΈ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° Π΅ΠΊΠΈΠΏΠ°.
Π‘ΡΡΠΏΠΊΠ° 3: ΠΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΠΈ ΡΠ° ΠΊΠΎΠΌΠΈΡΠ½Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
git push origin mainGit ΡΠ΅ ΡΠ΅ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈ Ρ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° ΠΊΠ»ΠΎΠ½Π° ΠΈ ΡΠ΅ ΠΊΠ°ΡΠΈ ΡΠ°ΠΌΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠΌΠΈΡΠΈ (Π΄Π΅Π»ΡΠ° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄ΠΎΡΠΈ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°).
ΠΡΠ°ΠΊΠ²Π°Π½ ΠΈΠ·Ρ ΠΎΠ΄:
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 320 bytes | 320.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
To https://github.com/username/repository.git
a1b2c3d..e4f5g6h main -> mainΠ‘ΡΡΠΏΠΊΠ° 4: ΠΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π½ΠΎΠ² Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΊΠ»ΠΎΠ½ ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΎ ΡΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅, ΡΡΡΠ±Π²Π° ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ.
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½:
git checkout -b feature/user-authenticationΠΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ Π½ΠΎΠ²ΠΈΡ ΠΊΠ»ΠΎΠ½ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
git push origin feature/user-authenticationΠ‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΠ»ΠΎΠ½ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π² ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ»Π΅Π³ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ, ΠΏΡΠ΅Π³Π»Π΅Π΄Π°Ρ ΠΈΠ»ΠΈ Π΄Π° ΠΎΡΠ²ΠΎΡΡΡ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ ΡΡΠ΅ΡΡ Π½Π΅Π³ΠΎ.
Π‘ΡΡΠΏΠΊΠ° 5: ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Ρ ΠΊΠ»ΠΎΠ½ Π½Π°Π³ΠΎΡΠ΅ ΠΏΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ°
ΠΠ° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠ»Π°Π³Π° -u (ΠΈΠ»ΠΈ --set-upstream):
git push -u origin feature/user-authenticationΠ‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ Π²Π΅Π΄Π½ΡΠΆ, Π±ΡΠ΄Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈΡ ΠΎΡ ΡΠΎΠ·ΠΈ ΠΊΠ»ΠΎΠ½ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠ°ΠΌΠΎ:
git pushGit Π·Π°ΠΏΠΎΠΌΠ½Ρ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Π½Π°Π³ΠΎΡΠ΅ ΠΏΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ° ΠΈ ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Ρ ΠΎΡΡΠ°Π½Π°Π»ΠΎΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄ΡΠ»Π³ΠΎΡΡΠ°ΠΉΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅.
Π‘ΡΡΠΏΠΊΠ° 6: ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ β ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Ρ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅
ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΎΠ½. Π§Π΅ΡΡΠΈΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ:
- Π‘Π»Π΅Π΄ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠ΅Π±Π°Π·ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅
- ΠΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ³ΡΠ΅ΡΠ΅Π½ ΠΊΠΎΠΌΠΈΡ, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΊΠ»ΠΎΠ½
- ΠΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ Π΄ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅:
git push --force origin main> β οΈ ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: --force ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΎΠ½. ΠΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΈΡΠΈ Π² ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ Π²ΠΈ ΠΊΠ»ΠΎΠ½, ΡΠ΅ Π±ΡΠ΄Π°Ρ Π±Π΅Π·Π²ΡΠ·Π²ΡΠ°ΡΠ½ΠΎ Π·Π°Π³ΡΠ±Π΅Π½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΡΡΡΠ΄Π½ΠΈΡΠΈ. ΠΠΈΠΊΠΎΠ³Π° Π½Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΉΡΠ΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΊΡΠΌ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΊΠ°ΡΠΎ main ΠΈΠ»ΠΈ develop Π±Π΅Π· ΡΡΠ³Π»Π°ΡΠΈΠ΅ΡΠΎ Π½Π° Π΅ΠΊΠΈΠΏΠ°.
ΠΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° β ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Ρ lease:
git push --force-with-lease origin main--force-with-lease Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° ΠΎΠΏΡΠΈΡ. Π’Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π½ΠΈΠΊΠΎΠΉ Π΄ΡΡΠ³ Π½Π΅ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠ» Π½ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΈΡΠΈ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΎΠ½, ΠΎΡΠΊΠ°ΠΊΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΡΡΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ. ΠΠΊΠΎ Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠ» ΠΌΠ΅ΠΆΠ΄ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»Ρ, Π·Π°ΡΠΈΡΠ°Π²Π°ΠΉΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΌΡ.
Π‘ΡΡΠΏΠΊΠ° 7: ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Git ΡΠ°Π³ΠΎΠ²Π΅
Π’Π°Π³ΠΎΠ²Π΅ΡΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ, Π·Π½Π°ΡΠΈΠΌΠΈ ΡΠΎΡΠΊΠΈ Π² ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π²ΠΈ β ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²Π΅ΡΡΠΈΠΉΠ½ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ. Π’Π΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Ρ git push; ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ.
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ Π°Π½ΠΎΡΠΈΡΠ°Π½ ΡΠ°Π³:
git tag -a v2.0.0 -m "Release version 2.0.0 β stable production build"ΠΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ°Π³:
git push origin v2.0.0ΠΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ Π½Π°Π²Π΅Π΄Π½ΡΠΆ:
git push origin --tagsΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π³ΠΎΠ²Π΅ Π·Π° ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ½ΠΎ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π΅ (v1.0.0, v1.1.0, v2.0.0) Π΅ ΡΠΈΡΠΎΠΊΠΎ Π²ΡΠ·ΠΏΡΠΈΠ΅ΡΠ° Π΄ΠΎΠ±ΡΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΡΠΈΡΡΠΎ Ρ CI/CD ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ.
ΠΡΠ»Π½Π° ΡΠΏΡΠ°Π²ΠΊΠ°: ΠΠΏΡΠΈΠΈ ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅ Π½Π° Git Push
| Π€Π»Π°Π³ / ΠΠΏΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΡΠΈΠΌΠ΅Ρ |
|---|---|---|
-u / --set-upstream | Π‘Π²ΡΡΠ·Π²Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΊΠ»ΠΎΠ½ Ρ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΎΠ½ Π·Π° Π±ΡΠ΄Π΅ΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈΡ | git push -u origin main |
--all | ΠΠ·ΠΏΡΠ°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ | git push --all origin |
--tags | ΠΠ·ΠΏΡΠ°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ | git push origin --tags |
--delete | ΠΠ·ΡΡΠΈΠ²Π° ΠΊΠ»ΠΎΠ½ ΠΈΠ»ΠΈ ΡΠ°Π³ Π² ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ | git push origin --delete old-feature |
--force | ΠΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ (ΠΎΠΏΠ°ΡΠ½ΠΎ) | git push --force origin main |
--force-with-lease | ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π½ΡΠΌΠ° Π½ΠΎΠ²ΠΈ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΈΡΠΈ | git push --force-with-lease origin main |
--dry-run | Π‘ΠΈΠΌΡΠ»ΠΈΡΠ° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π±Π΅Π· ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅ | git push --dry-run origin main |
--verbose | ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π΅Π½ ΠΈΠ·Ρ ΠΎΠ΄ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ | git push --verbose origin main |
--no-verify | ΠΡΠΎΠΏΡΡΠΊΠ° hooks ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ | git push --no-verify origin main |
ΠΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΠΊΠ»ΠΎΠ½
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΊΠ»ΠΎΠ½ Π΅ Π±ΠΈΠ» ΡΠ»ΡΡ ΠΈ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ, ΠΏΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΎ Π² ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
git push origin --delete feature/user-authenticationΠ’ΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° ΠΊΠ»ΠΎΠ½Π° ΠΎΡ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π±Π΅Π· Π΄Π° Π·Π°ΡΡΠ³Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎΡΠΎ Π²ΠΈ ΠΊΠΎΠΏΠΈΠ΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠΈΡΡΠΎ ΠΎΡ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΎΠ±ΡΡΠΊΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° Ρ ΠΈΠ³ΠΈΠ΅Π½Π°ΡΠ° Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ.
ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΊΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°
ΠΡΠΈ Π½ΡΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ β ΠΊΠ°ΡΠΎ ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π΄ΠΈ β ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΊΡΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄Π½ΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ Π²ΡΠΎΡΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
git remote add staging ssh://user@staging-server.com/repo.gitΠΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ ΠΊΡΠΌ Π΄Π²Π΅ΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°:
git push origin main
git push staging mainΠΠ»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ Git Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° URL Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π² .git/config.
> Π‘ΡΠ²Π΅Ρ Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°: ΠΠ° Π΅ΠΊΠΈΠΏΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π΄ΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, AlexHost Dedicated Servers ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π°, Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΈΠ΄Π΅Π°Π»Π½Π° Π·Π° Git ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π²ΡΡΡ Ρ Π΄ΠΎΡΡΡΠΏΠ°, ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ.
Π§Π΅ΡΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Git Push ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΠ΅
ΠΡΠ΅ΡΠΊΠ°: βrejected β non-fast-forwardβ
ΠΡΠΈΡΠΈΠ½Π°: ΠΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈΡΡ ΠΊΠ»ΠΎΠ½ ΠΈΠΌΠ° ΠΊΠΎΠΌΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡΡ Π²ΠΈ ΠΊΠ»ΠΎΠ½ Π½ΡΠΌΠ°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΡΡΠ²ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΡΠ΅, ΡΠ°Π·ΡΠ΅ΡΠ΅ΡΠ΅ Π΅Π²Π΅Π½ΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅:
git pull origin main
# Resolve conflicts if any
git push origin mainΠΡΠ΅ΡΠΊΠ°: βPermission denied (publickey)β
ΠΡΠΈΡΠΈΠ½Π°: SSH ΠΊΠ»ΡΡΡΡ Π²ΠΈ Π½Π΅ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ SSH ΠΊΠ»ΡΡΡΡ Π²ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ Π°ΠΊΠ°ΡΠ½ΡΠ° Π²ΠΈ Π² GitHub/GitLab ΠΈ Π΄Π°Π»ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡΡ SSH Π°Π³Π΅Π½Ρ Π³ΠΎ Π΅ Π·Π°ΡΠ΅Π΄ΠΈΠ»:
ssh-add ~/.ssh/id_ed25519
ssh -T git@github.comΠΡΠ΅ΡΠΊΠ°: βremote: Repository not foundβ
ΠΡΠΈΡΠΈΠ½Π°: URL Π°Π΄ΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΠΈΠ»ΠΈ Π½ΡΠΌΠ°ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° Π΄ΠΎΡΡΡΠΏ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ URL Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
git remote -v
git remote set-url origin https://github.com/correct-username/correct-repo.gitΠΡΠ΅ΡΠΊΠ°: βUpdates were rejected because the tip of your current branch is behindβ
ΠΡΠΈΡΠΈΠ½Π°: ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° non-fast-forward; Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠ» ΠΊΡΠΌ ΠΊΠ»ΠΎΠ½Π° ΡΠ»Π΅Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ Π²ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΠΈΠ½Π°Π³ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅:
git fetch origin
git rebase origin/main
git push origin mainΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° rebase Π²ΠΌΠ΅ΡΡΠΎ merge ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ Π²ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π° ΠΈ ΡΠΈΡΡΠ°.
ΠΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π·Π° Git Push Π² ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ
1. ΠΠΈΠ½Π°Π³ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅
ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ git pull --rebase origin main Π½Π°Π²ΠΈΠΊ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π²ΠΈ ΡΠΈΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° Π½Π΅Π½ΡΠΆΠ½ΠΈ ΠΊΠΎΠΌΠΈΡΠΈ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅.
2. ΠΠΈΡΠ΅ΡΠ΅ ΡΠΌΠΈΡΠ»Π΅Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° ΠΊΠΎΠΌΠΈΡΠΈ
Π‘Π»Π΅Π΄Π²Π°ΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Conventional Commits:
feat: add JWT-based user authentication
fix: resolve null pointer exception in payment module
docs: update API endpoint documentation3. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅
Π GitHub, GitLab ΠΈΠ»ΠΈ Bitbucket ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π·Π°ΡΠΈΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π·Π° main ΠΈ develop, Π·Π° Π΄Π°:
- ΠΠ·ΠΈΡΠΊΠ²Π°ΡΠ΅ ΠΏΡΠ΅Π³Π»Π΅Π΄ΠΈ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΏΡΠ΅Π΄ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅
- ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈΡ
- ΠΠ·ΠΈΡΠΊΠ²Π°ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° CI/CD ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
4. ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΠΉΡΠ΅ --force-with-lease ΠΏΡΠ΅Π΄ --force
ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡΡΠ°, Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ --force-with-lease, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ»Π΅Π³Π°.
5. ΠΠ·ΠΏΡΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ΅ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅
ΠΠ°Π»ΠΊΠΈΡΠ΅, ΡΠ΅ΡΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈΡ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ°, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π²ΠΈ ΠΈ ΡΠ»Π΅ΡΠ½ΡΠ²Π°Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ΄Π°. ΠΠΎΠ»Π΅ΠΌΠΈΡΠ΅, ΡΠ΅Π΄ΠΊΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈΡ ΡΡΠ·Π΄Π°Π²Π°Ρ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΈ ΡΡΡΠ΄Π½ΠΈ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅.
6. ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΉΡΠ΅ ΡΠ΅Π»Π΅Π²ΠΈΡ ΠΊΠ»ΠΎΠ½
ΠΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ β ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ β ΠΏΠΎΡΠ²ΡΡΠ΄Π΅ΡΠ΅ Π² ΠΊΠΎΠΉ ΠΊΠ»ΠΎΠ½ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°ΡΠ΅:
git branch --show-currentΠ‘Π»ΡΡΠ°ΠΉΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΊΡΠΌ main Π²ΠΌΠ΅ΡΡΠΎ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΊΠ»ΠΎΠ½ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ.
7. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Git Hooks Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
Hooks ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ (.git/hooks/pre-push) ΠΌΠΎΠ³Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ΅ΡΡΠΎΠ²Π΅, Π»ΠΈΠ½ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΏΡΠ΅Π΄ΠΈ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅, ΡΠ»Π°Π²ΡΠΉΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π°Ρ Π΄ΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
Git Push Π² CI/CD ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅
Π ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ DevOps ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ git push ΡΠ΅ΡΡΠΎ Π΅ ΡΡΠΈΠ³Π΅ΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈ, ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½ΠΈΡ. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΊΠ»ΠΎΠ½:
- Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ β Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅
- ΠΠ»ΠΎΠ½
developβ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² ΡΠ΅ΡΡΠΎΠ²Π° ΡΡΠ΅Π΄Π° - ΠΠ»ΠΎΠ½
mainβ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° ΡΡΠ΅Π΄Π°
Π’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π», ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ GitOps, ΠΏΡΠ°Π²ΠΈ Git Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π²ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΈΡΡΠΈΠ½Π° Π·Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π²ΠΈ.
> ΠΠ° Π΅ΠΊΠΈΠΏΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° CI/CD ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, AlexHost VPS Ρ cPanel ΠΈ VPS ΠΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ ΠΈ Ρ ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΡΡΠ½ΠΈ Git Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Ρ ΠΏΡΠ»Π΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ».
ΠΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π²ΠΈ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅Π±ΡΠ°ΠΉΡ ΠΈΠ»ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Git ΡΠ°Π±ΠΎΡΠ½ΠΈΡ Π²ΠΈ ΠΏΡΠΎΡΠ΅Ρ Ρ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ Π‘ΠΏΠΎΠ΄Π΅Π»Π΅Π½ ΡΠ΅Π± Ρ ΠΎΡΡΠΈΠ½Π³ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡΡ Π²ΠΈ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½Π°, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° β Ρ Π»Π΅ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΡΡΠ΅Π· Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ Π² AlexHost, Π·Π° Π΄Π° Π·Π°Π²ΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°.
Π Π΅Π·ΡΠΌΠ΅: ΠΡΡΠ·Π° ΡΠΏΡΠ°Π²ΠΊΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Git Push
# Basic push
git push origin main
# Push and set upstream tracking
git push -u origin feature-branch
# Push all branches
git push --all origin
# Push all tags
git push origin --tags
# Delete a remote branch
git push origin --delete old-branch
# Safe force push
git push --force-with-lease origin main
# Dry run (simulate without uploading)
git push --dry-run origin mainΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° git push Π΅ ΠΈΠ·ΠΌΠ°ΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΠ° Π½Π° ΠΏΠΎΠ²ΡΡΡ
Π½ΠΎΡΡΡΠ°, Π½ΠΎ Π±ΠΎΠ³Π°ΡΠ° Ρ Π½ΡΠ°Π½ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΠ΅Π°Π»Π½ΠΈ, ΡΡΠ²ΠΌΠ΅ΡΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠ°ΡΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠ»Π½ΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΎΠΏΡΠΈΠΈ β ΠΎΡ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π°Π³ΠΎΡΠ΅ ΠΏΠΎ Π²Π΅ΡΠΈΠ³Π°ΡΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π³ΠΎΠ²Π΅ Π΄ΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Ρ lease ΠΈ ΠΏΡΠΎΠ±Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΡ β ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π΄Π° ΠΈΠ·Π±ΡΠ³Π²Π°ΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΡΡΠ²Π°ΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π΄Π° Π΄ΠΎΠΏΡΠΈΠ½Π°ΡΡΡΠ΅ Π·Π° ΠΏΠΎ-ΡΠΈΡΡΠ°, ΠΏΠΎ-ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π΅ΠΌΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°.
ΠΠ²Π»Π°Π΄Π΅ΠΉΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅: ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅, ΠΏΠΈΡΠ΅ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° ΠΊΠΎΠΌΠΈΡΠΈ, Π·Π°ΡΠΈΡΠ°Π²Π°ΠΉΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ΅ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ Π½Π°Π²ΠΈΡΠΈ, ΡΡΡΠ΅ΡΠ°Π½ΠΈ Ρ ΡΠΎΠ»ΠΈΠ΄Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΎΡΠΌΠΈΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ ΡΠ°ΡΡ ΠΎΡ Π³ΠΎΠ»ΡΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ΅Π½ Π΅ΠΊΠΈΠΏ, ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΡΡΡΠ²ΡΡΠ½Π° ΡΡΠ΅Π΄Π° ΡΡΠΈΠ»Π²Π° ΠΌΠΎΡΡΠ° Π½Π° Π²Π°ΡΠΈΡ Git ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ. Π Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ AlexHost VPS Π₯ΠΎΡΡΠΈΠ½Π³, Π·Π° Π΄Π° Π²Π½Π΅Π΄ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ ΡΠΈ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½Π°, ΡΠ΄ΠΎΠ±Π½Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π·Π° ΡΠΊΠΎΡΠΎΡΡ, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ.
ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Ρ
ΠΎΡΡΠΈΠ½Π³ ΡΡΠ»ΡΠ³ΠΈ