Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git push ΠΈ git pull
Git Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
. Π£ΡΠΎΠΊ 6.
git push ΠΈ git pull
ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ
ΠΠΎΠ½ΡΠΏΠ΅ΠΊΡ ΡΡΠΎΠΊΠ°
ΠΡΠ°ΡΠΊΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡ.
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° github ΠΈ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ . ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ push (ΠΏΡΡ)
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΡΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΎΠ³Π΄Π° ΠΏΡΡΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΎΠ³Π΄Π° ΡΠ΄Π΅Π»Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ Π΅ΡΡΡ Π½Π΅Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ
Π ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π½Π°Π±ΡΠ°ΡΡ git status
ΠΠ»ΡΡΠ΅Π²Π°Ρ ΡΡΠ°Π·Π° Π·Π΄Π΅ΡΡ «Your branch is ahead of ‘origin/master’ by 5 commits.». ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ 5 Π½Π΅ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠ»ΠΈ Π½Π΅Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π΅Ρ, ΡΠΎ ΠΊΠ°ΡΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠ°Ρ
«is up-to-date» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ Π½Π°Ρ Π½Π΅Ρ Π½Π΅Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
master ΠΈ origin/master
git push Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅
ΠΠ°ΠΊ ΠΏΡΡΠΈΡΡ Π² PhpStorm
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ pull (ΠΏΡΠ»Π»)
ΠΡΠΎ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π½ΠΎ Ρ ΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ, ΡΡΠΎ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΠ΅.
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠ»ΠΈΡΡΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡ Π²Π°ΡΠΈΡ ΠΊΠΎΠ»Π»Π΅Π³. ΠΠ»ΠΈ ΠΎΡ ΡΠ΅Π±Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ
git pull Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅
ΠΠ°ΠΊ ΠΏΡΠ»ΠΈΡΡ Π² PhpStorm
ΠΠΎΠ³Π΄Π° ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git push ΠΈ git pull ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΈΡΡΡ Π² ΡΡΠ΅Π±Π½ΠΈΠΊΠ°Ρ . Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ
git push rejected
ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΈΡΡ Π΅Π³ΠΎ, Π° git Π² ΠΎΡΠ²Π΅Ρ Π²ΡΠ΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠ΅
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½, ΠΏΡΡ Π½Π΅ ΠΏΡΠΎΡΠ΅Π». ΠΠΎΡΠ΅ΠΌΡ?
Git ΡΡΡΡΠΎΠ΅Π½ ΡΠ°ΠΊ, ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎ Π΅ΡΡΡ Π·Π°ΠΏΡΡΠΈΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π’Π΅ ΡΠ°ΠΌΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΏΠ΅Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΡΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ. Π’ΠΎ Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ git pull.
ΠΡΠ΅, Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ «Merge branch ‘master’ of github.com:Webdevkin/site-git». ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎ Π½Π΅ΠΌ ΡΡΡΡ Π½ΠΈΠΆΠ΅.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΡΡΠ° Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅Ρ, ΡΠΎ git push ΠΏΡΠΎΠΉΠ΄Π΅Ρ ΡΡΠ°Π·Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠ°ΠΊ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΡΠ½ΡΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ Π½Π΅ Π½Π΅ΡΠ΅Ρ ΡΠΌΡΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° ΠΌΠ΅ΡΠ΄ΠΆΠ°. ΠΠ΅Π· Π½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΈΡΠ΅.
ΠΡΠΈ ΡΡΠΎΠΌ Π²Π°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ «ΠΏΠΎΠ²Π΅ΡΡ » Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π° ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ. Π Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ Π² PhpStorm
PhpStorm ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ rejected ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π΅ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠΎ PhpStorm Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ: ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΡΠ½ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Ρ ΠΌΠ΅ΡΠΆΠ΄Π΅ΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π±Π΅ΠΉΠ·ΠΎΠΌ. ΠΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ «Rebase», ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΡΠ°Π·Ρ Π·Π°ΠΏΡΡΠΈΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
Π§ΡΠΎ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°ΡΡ
ΠΡΠ»ΠΈ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡΠΊΡ, ΡΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·Π΅Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π² Π½Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΈΡΡ.
ΠΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ Π½Π°Π΄ ΡΠ°ΠΊΠΈΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ:
ΠΠ΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ, ΠΊΠ°ΠΊ Π΄ΡΡΠ·ΡΡ Π½ΠΈΠΆΠ΅. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π° 5 ΠΌΠΈΠ½ΡΡ. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΠΎΠ³Π΄Π° git Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Ρ ΠΎΡΠ΅ΡΡΡ, ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅, Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²Π΅ΡΠΊΠΈ ΠΈ Π±ΡΠ΄Π΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌΠΈ. Π’Π°ΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git push ΠΈ git pull, ΠΈ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ ΡΠΆΠ΅ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
September 01, 2014
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Git ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° GitHub.
Π£ΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ, ΠΎΠ±Π»Π°Π΄Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Git ΠΈ Π²Π»Π°Π΄Π΅Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ GitHub, Ρ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ, ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³ ΠΆΠΈΡΡ ΡΠ°Π½ΡΡΠ΅ Π±Π΅Π· ΠΎΠ±ΠΎΠΈΡ ΡΡΠΈΡ Π²Π΅ΡΠ΅ΠΉ. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ!
ΠΠ°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ Π² ΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ (ΠΈ Ρ Π΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ) ΠΊΠΎΠΌΠ°Π½Π΄Π° push (ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ). Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Ρ Π²Π½Π΅ΡΡ Π΅ΡΠ΅ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΡΡ ΠΈΡ , Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»Ρ Π½Π° GitHub:
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° pull Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π Π²ΡΠ²ΠΎΠ΄Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ (Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅) Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ README.md, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠΎΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π» Π΄ΠΎΠΌΠ°. Π ΠΌΠΎΠ³Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Ρ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ.
ΠΠΎΠΌΠ°Π½Π΄Π° pull ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ patch ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠ²Π΅ΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΈ ΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΠΎΠΌΠ°Π½Π΄Π° fetch ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ patch ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ:
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Ρ Π΅ΡΠ΅ Π½Π΅ ΡΠΌΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠ²Π΅ΠΉ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git fetch Ρ ΠΎΠΏΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git pull ΠΈ git push. Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ git pull. ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git pull ΠΈ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°? ΠΠ½ΡΡΡΠΈ ΡΠ΅Π±Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΠΌΠ°Π½Π΄Π° git fetch ΡΠ»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π½Π°ΡΠ΅ΠΌ remote ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π°Ρ Π½Π΅Ρ ΠΎΠ½Π° ΡΠ»ΠΈΠ²Π°Π΅Ρ, Π½ΠΎ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π² Π½Π°ΡΠΈ Π²Π΅ΡΠΊΠΈ. ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π΅Π·Π±ΠΎΡΠ·Π½Π΅Π½Π½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ»ΠΎΠΌΠ°Π΅ΡΡΡ. Π ΠΏΠΎΡΠΎΠΌ git merge ΠΌΠ΅ΡΠ΄ΠΆΠΈΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΠΊΠΎΠΉ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΌΠΎΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΏΡΡΠΈΡΡ ΠΈ Π½Π° ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΠΊΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π³ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅Π½ ΡΠ°ΠΊ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git push ΠΏΡΡΠΈΡ Π² Π²Π΅ΡΠΊΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π° Π΅ΡΠ»ΠΈ Π΅Π΅ Π½Π΅Ρ ΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΅Π΅.
ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ pull ΠΈ push Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ Π·Π½Π°Π΅Ρ Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΌΠΎΡΡ Π²Π΅ΡΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
ΠΠ΅ΡΠΊΠ° Π·Π°ΠΏΡΡΠΈΠ»Π°ΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ git pull, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ
Π’ΠΎ Π΅ΡΡΡ Π³ΠΈΡ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΌΠΎΡΡ Π²Π΅ΡΠΊΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΠΊΠ°. ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΈΡΠ°ΡΡ
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ΅ΠΊΠΈΠ½Π³ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈ ΡΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠ»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git pull ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
GitOps: ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Pull ΠΈ Push
ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: Π ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Kubernetes ΡΠ²Π½ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΡΡΠ΅Π½Π΄ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ GitOps, Π² ΡΡΠΌ ΠΌΡ Π»ΠΈΡΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ, ΠΏΠΎΡΠ΅ΡΠΈΠ² KubeCon Europe 2019. ΠΡΠΎΡ ΡΠ΅ΡΠΌΠΈΠ½ Π±ΡΠ» ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ Π³Π»Π°Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Weaveworks β Alexis Richardson β ΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ β Git, ΠΎΡΠΊΡΠ΄Π° ΠΈ ΡΠ°ΠΌΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅) Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΡ ΠΎΠ± ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Kubernetes ΡΠ΅ΡΠ΅Π· Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π² Git ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠΊΠ°ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ. Π Π΄Π²ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°Ρ ΠΊ ΡΡΠΎΠΌΡ Π²ΡΠΊΠ°ΡΡ ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Matthias Jg Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π ΠΏΡΠΎΡΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρ (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π² Π°Π²Π³ΡΡΡΠ΅ 2017 Π³. β ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².) ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Kubernetes. ΠΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ GitOps, Π° Π² Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΆΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΉ deployment’ΠΎΠ² Π²Π΅Π΄Π΅ΡΡΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
Π‘ΠΏΠΎΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ Π² Kubernetes ΡΡΡΠΎΡΠ»ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΉ:
Pull & Push
Π ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ²ΠΎΠΈΡ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ Π² Π±Π»ΠΎΠ³Π΅ Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Weave Flux, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Π² Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ deployment ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈΠ»ΠΈ push’Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠΎΠΉ ΠΎΠΏΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π² Π΄Π΅Π»Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ pull-ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π½Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π²ΠΎΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ°ΡΡΡ.
NB! ΠΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GitOps ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ².
ΠΠΎΠ΄Ρ ΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Pull
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° pull Π»Π΅ΠΆΠΈΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ·Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΠ½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Git ΠΈ Docker Registry. ΠΡΠ»ΠΈ Π² Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·Π½ΡΡΡΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π΅ΡΡΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΡΠ°Π²Π°ΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ΅ΡΠ°.
ΠΠΎΠ΄Ρ ΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Push
Π push-ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ Π²Π½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° (ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ CD-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ) Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈΠ»ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ CI-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°. Π ΡΡΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ.
ΠΡΠΎΠ³ΠΈ: Push ΠΈΠ»ΠΈ Pull?
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π»Π΅Π³ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ β Ρ Π΄ΡΡΠ³ΠΈΠΌ. ΠΠΎΠ½Π°ΡΠ°Π»Ρ Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ» ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΠΊΠ½ΡΠ»ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ Weave Flux, ΡΠ΅ΡΠΈΠ» Π²Π½Π΅Π΄ΡΠΈΡΡ GitOps-ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ»Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΡΡΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π»Π΅Π³ΠΊΠΎ, Π½ΠΎ ΠΏΠΎΡΠΎΠΌ Ρ Π½Π°ΡΠ°Π» ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ Helm-ΡΠ°ΡΡΠ°ΠΌΠΈ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ Weave Flux ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π» ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ°ΡΠΎΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Helm Chart Operator, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ½ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΠΊΡΠ΅ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ pull-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ, Π° ΡΡΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΡΡΠΎ ΡΡΠΎΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ.
ΠΠΎΡΠ°Π·ΠΌΡΡΠ»ΠΈΠ² Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Ρ ΠΏΡΠΈΡΠ΅Π» ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ , ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΡ, Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠΉΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ² ΠΈ CI/CD-ΡΠΈΡΡΠ΅ΠΌΡ, Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Π½ΡΡΡΠΈ Π½ΠΈΡ Π²Π΅ΡΡΠΌΠ° ΡΡΠ·Π²ΠΈΠΌΠ° ΠΈ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΠ½ΠΈΠΊΠ½Π΅Ρ Π² Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git ΠΈ ΡΠΌΠΎΠΆΠ΅Ρ push’ΠΈΡΡ ΡΡΠ΄Π° ΠΊΠΎΠ΄, ΡΠΎ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅, ΡΡΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, Π±ΡΠ΄Π΅Ρ ΡΡΠΎ pull ΠΈΠ»ΠΈ push), ΠΈ Π²Π½Π΅Π΄ΡΠΈΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΠΌΠΈ Π·Π°ΡΠΈΡΡ, ΡΠ²Π»ΡΡΡΡΡ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ CI/CD-ΡΠΈΡΡΠ΅ΠΌΡ, Π° Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΈ ΠΌΠ΅ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π° ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ pull-ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π½Π½ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ.
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ pull-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ ΠΈ Π½Π΅ Π΄Π°Π΅Ρ Π²ΡΠΈΠ³ΡΡΡΠ° Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π½Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ push-ΠΏΠΎΠ΄Ρ ΠΎΠ΄? ΠΠΎ Π²Π΅Π΄Ρ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΠ²ΠΈΡΡ, ΡΡΠΎ Π² push-ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ Π²Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·Π°Π²ΡΠ·Π°Π½Ρ Π½Π° CD-ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΡΡΡΠ΅ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ (ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅Π³Π΄Π°), ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ»ΡΡΠ°Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΈΡΠ½ΠΎ Ρ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°ΠΌΠΈ: Weave Flux Π΄Π»Ρ deployment’ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ pull, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π½Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΈ push-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ Helm’ΠΎΠΌ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Helm-ΡΠ°ΡΡΠΎΠ² ΠΊ ΠΊΠ»Π°ΡΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΠΊΡΠ΅ΡΡ. ΠΡΠΌΠ°Ρ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΡΠ°Π½ΡΠΎΠ² Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ½ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ GitOps β ΠΎΠ½ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΆΠΈΠ·Π½Ρ ΠΈ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ.
ΠΠ°Π΄Π΅ΡΡΡ, ΠΌΠΎΠΉ ΠΎΠΏΡΡ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° deployment’ΠΎΠ², Π° Ρ Π±ΡΠ΄Ρ ΡΠ°Π΄ ΡΠ·Π½Π°ΡΡ Π²Π°ΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅.
P.S. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°
Π ΠΌΠΈΠ½ΡΡΠ°Ρ pull-ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΅ΡΡΡ ΠΏΡΠ½ΠΊΡ ΠΏΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² Git ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅Ρ ΠΌΠΈΠ½ΡΡΠ°, ΡΡΠΎ CD-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π² pull-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΆΠΈΠ²ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ Π²ΡΠΊΠ°ΡΠ° ΠΈ ΠΏΠΎ ΡΡΡΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Continuous Apply. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΈΠ»ΠΈΠΉ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠΎ Π²ΡΠ΅Ρ deployment’ΠΎΠ² ΠΈΡ ΡΡΠ°ΡΡΡ ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ Π΄Π°Π²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠ³Π°ΠΌ/ΡΡΠ°ΡΡΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ ΠΊ CD ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ push-ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π°ΡΡ Ρ ΠΎΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π²ΡΠΊΠ°ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ pipeline’Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π²Π½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΠΊΠ°ΡΠ°.
ΠΡ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠ΅ΠΌ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄Π°ΠΌ, ΡΡΠΎ ΠΈ Π°Π²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ:
Git push, git pull, git fetch β Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°? Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ git-ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ
Git β ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΠ°Ρ Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΠ°Π±ΠΎΡΡ.
Git push
ΠΠΎΠΌΠ°Π½Π΄Π° git push Π² Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠ·Π΅ΡΠΎΠΌ, Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ GitHub):
ΠΡΠ½ΡΠΆΠ΄Π΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° push ΠΏΡΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²:
Git pull
ΠΠΎΠΌΠ°Π½Π΄Π° git pull ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎΡΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π½ΠΎ Π·Π΄Π΅ΡΡ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΠ΅.
ΠΠΎ ΡΡΡΠΈ, git pull β ΡΡΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ git fetch (Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΡΡΠ»ΠΊΠΈ, ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ) ΠΈ git merge (ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠΈΠΉ).
Git pull Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
Git fetch
Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git fetch origin
ΠΡΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ:
Git merge
ΠΠΎΠΌΠ°Π½Π΄Π° git merge ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅. Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ git ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π³Π΄Π΅ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±Π΅ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ Π² ΡΠ»ΠΈΡΠ½ΠΈΠΈ
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git add : ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π°. ΠΠ°ΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΠ΅Ρ ΡΠ»ΠΎΠΉΠ½ΠΎΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΌ.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ git
Π£ΡΠ»ΠΎΠ²Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, git pull β ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄: git fetch (ΠΏΡΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°) ΠΈ git merge (ΡΠ»ΠΈΡΠ½ΠΈΠ΅).
Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, git push ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π²Π΅ΡΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΎΡΠΊΡ, Π° git merge β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ.
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ git-ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ
git init β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²;
git clone β ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ;
git rm β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°;
git log β ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²;
git branch
β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ;
git branch βd
β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ;
git merge
β ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ;
git push
β ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ;
git push :
β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅;
git tag β ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΌΠ΅ΡΠΎΠΊ;
git push β ΠΎΠ±ΠΌΠ΅Π½ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ;
git remote β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²;
git pull
β ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ;
git push
β ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ.