πŸ”₯Hotfix Π²Π΅Ρ‚ΠΊΠ° Π² Git Flow: Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°?

Π’Π΅Ρ‚ΠΊΠ° hotfix Π² Git Flow ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для исправлСния Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ»ΠΈ ошибок Π² производствСнном ΠΊΠΎΠ΄Π΅. Она создаСтся нСзависимо ΠΎΡ‚ основной Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² быстро внСсти измСнСния ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ исправлСния Π±Π΅Π· прСрывания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π΅Ρ‚ΠΊΠ° hotfix создаСтся ΠΎΡ‚ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ production. ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ протСстирования, исправлСнный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объСдинСн с Π²Π΅Ρ‚ΠΊΠΎΠΉ production с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слияния ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ hotfix:

git checkout -b hotfix-branch

ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ исправлСния ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ измСнСния Π½Π° этой Π²Π΅Ρ‚ΠΊΠ΅. Когда Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ исправлСниСм Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ (Π² ΠΌΠ΅Ρ€Π΄ΠΆ) с Π²Π΅Ρ‚ΠΊΠΎΠΉ production.

НапримСр:

git checkout production
git merge hotfix-branch

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, использованиС Π²Π΅Ρ‚ΠΊΠΈ hotfix позволяСт эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки Π² ΠΆΠΈΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅, минимизируя ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Hotfix Π²Π΅Ρ‚ΠΊΠ° Π² git flow: для Ρ‡Π΅Π³ΠΎ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°?

Git Flow - это мСтодология Ρ€Π°Π±ΠΎΡ‚Ρ‹ с систСмой контроля вСрсий Git, прСдназначСнная для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Она прСдписываСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ структуру вСтвлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ измСнСниями.

Одной ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Git Flow являСтся hotfix Π²Π΅Ρ‚ΠΊΠ°. Hotfix Π²Π΅Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для быстрого исправлСния критичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ»ΠΈ ошибок Π² production-вСрсии прилоТСния. Она позволяСт Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° срочныС ситуации ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исправлСния Π±Π΅Π· затрагивания разработчСских ΠΈΠ»ΠΈ feature Π²Π΅Ρ‚ΠΎΠΊ.

Hotfix Π²Π΅Ρ‚ΠΊΠ° создаСтся ΠΎΡ‚ Π²Π΅Ρ‚ΠΊΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ production-вСрсии прилоТСния (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Π²Π΅Ρ‚ΠΊΠ° `master`). Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нСпосрСдствСнно Π² hotfix Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ внСсСны Π² production-Π²Π΅Ρ€ΡΠΈΡŽ. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ hotfix измСнСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ со ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ `master` ΠΈ с разработчСскими Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ (`develop`).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования hotfix Π²Π΅Ρ‚ΠΊΠΈ Π² Git Flow

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ production-вСрсиСй Π² Π²Π΅Ρ‚ΠΊΠ΅ `master`. Π’ процСссС эксплуатации этой вСрсии обнаруТиваСтся критичСская ошибка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ прямо сСйчас. Для этого создадим hotfix Π²Π΅Ρ‚ΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ `hotfix/bug-fix`:

git checkout -b hotfix/bug-fix master

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ исправляСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, внося Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² ΠΊΠΎΠ΄:

git commit -m "Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ критичСской ошибки"

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ошибки, ΠΌΡ‹ объСдиняСм hotfix Π²Π΅Ρ‚ΠΊΡƒ с Π²Π΅Ρ‚ΠΊΠΎΠΉ `master` ΠΈ выпускаСм Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ:

git checkout master
git merge --no-ff hotfix/bug-fix

Π’Π΅ΠΏΠ΅Ρ€ΡŒ исправлСния содСрТатся Π² Π²Π΅Ρ‚Π²ΠΈ `master`, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π»ΠΈΠ· Π½ΠΎΠ²ΠΎΠΉ вСрсии Π½Π° основС этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Hotfix Π²Π΅Ρ‚ΠΊΠ° Π² Git Flow ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ исправлСниями критичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² production-вСрсии прилоТСния. Она позволяСт быстро Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΎΡ‚Π»ΠΎΠΆΠ½Ρ‹Π΅ ситуации ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ошибки Π±Π΅Π· прямого воздСйствия Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ.

Git Flow обСспСчиваСт структуру ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ сниТаСт риск возникновСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ. ИспользованиС Hotfix Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ бСзопасныС ΠΈ эффСктивныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, гарантируя ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ БранчСвания GIT FLOW. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎ слоТном.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git flow ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

GIT: Gitflow. ВСория

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Origin Git: нСслоТноС руководство с эмодТи πŸ‘‹πŸ—‘οΈ

πŸ”§ Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ установкой git: основныС инструмСнты

πŸ”₯Hotfix Π²Π΅Ρ‚ΠΊΠ° Π² Git Flow: Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°?

Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с git desktop? πŸ–₯πŸ’» ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ руководство ΠΈ совСты

πŸ”§ Как ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² VS Code C?