8.6 KiB
āĻāĻŋāĻāĻĢā§āϞ⧠(Gitflow)
āĻāĻŋāĻāĻĢā§āϞ⧠āĻšāϞ⧠āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻŦā§āϰāĻžāĻā§āĻāĻŋāĻ āĻŽāĻĄā§āϞ, āϝāĻž āĻāĻŋāύāϏā§āύā§āĻ āĻĄā§āϰāĻŋāϏā§āύ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰā§āĻāĻŋāϞā§āύāĨ¤ āĻāĻāĻžāύ⧠āĻŽā§āϞāϤ āĻāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ āĻĻāĻŋāĻāĻā§āϞ⧠āύāĻŋāϝāĻŧā§ āĻāϞā§āĻāύāĻž āĻāϰāĻž āĻšāϞā§āĨ¤
āĻāĻŋāĻāĻĢā§āϞ⧠āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞ⧠āĻāĻāĻāĻŋ āĻāĻĄāĻŧāĻž āĻŦā§āϰāĻžāĻā§āĻāĻŋāĻ āĻŽāĻĄā§āϞ, āϝāĻž āĻĒā§āϰāĻā§āĻā§āĻā§āϰ āϰāĻŋāϞāĻŋāĻ āϏāĻžāĻāĻā§āϞāĻā§ āĻāĻŋāϰ⧠āϤā§āϰāĻŋāĨ¤ āĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻĒā§āϰāĻā§āĻā§āĻ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻāĻžāĻ āĻžāĻŽā§ āĻĻā§āϝāĻŧāĨ¤ āĻŦāĻŋāĻļā§āώ āĻāϰ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻŽāϝāĻŧā§ āϰāĻŋāϞāĻŋāĻ āĻĻā§āĻāϝāĻŧāĻž āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāύā§āϝ āĻāĻŦāĻ Continuous Delivery (CD) āĻāϰ āĻŽāϤ⧠DevOps āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāϏā§āϰ āĻāύā§āϝ āĻāĻāĻŋ āĻāĻĒāϝā§āĻā§āĨ¤
āĻāĻŋāĻāĻĢā§āϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻāύā§āϝ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āĻŽāĻŋāĻāĻž āĻ āĻŋāĻ āĻāϰ⧠āĻĻā§āϝāĻŧ āĻāĻŦāĻ āĻāĻāύ āĻā§āĻāĻžāĻŦā§ āĻāĻā§āϞ⧠āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻļāĻŦā§ āϤāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āĨ¤ āĻāĻāĻžāύ⧠āĻāϞāĻžāĻĻāĻž āĻŦā§āϰāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ āĻĒā§āϰāϏā§āϤā§āϤāĻŋ, āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖ āĻāĻŦāĻ āϰāĻŋāϞāĻŋāĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝāĨ¤
āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ (Implementation)
- āĻĄā§āĻā§āϞāĻĒ (develop) āĻāĻŦāĻ āĻŽāĻžāϏā§āĻāĻžāϰ (master) āĻŦā§āϰāĻžāĻā§āĻ
āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻŽāĻžāϏā§āĻāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻ āĻĨāĻžāĻāĻžāϰ āĻŦāĻĻāϞ⧠āĻāĻŋāĻāĻĢā§āϞ⧠āĻĻā§āĻāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āĻŦā§āϰāĻžāĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϝā§āĻā§āϞā§āϰ āϞāĻžāĻāĻĢāĻāĻžāĻāĻŽ āĻ āϏā§āĻŽ āϧāϰāĻž āĻšāϝāĻŧāĨ¤
Master Branch: āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻā§āĻĄ āĻĨāĻžāĻā§ āĻāĻāĻžāύā§āĨ¤ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āϰāĻŋāϞāĻŋāĻ āĻāϤāĻŋāĻšāĻžāϏ āϏāĻāϰāĻā§āώāĻŋāϤ āĻšāϝāĻŧ āĻāĻ āĻŦā§āϰāĻžāĻā§āĻā§āĨ¤
Develop Branch: āĻāĻāĻžāύ⧠āĻĒā§āϰāĻŋ-āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻā§āĻĄ āĻĨāĻžāĻā§āĨ¤ āύāϤā§āύ āĻĢāĻŋāĻāĻžāϰāĻā§āϞā§āϰ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύā§āϰ āĻāύā§āϝ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤
Develop āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž:
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻžāĻĄāĻŧāĻž:
git branch develop git push -u origin develop
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāĻŋāϝāĻŧā§:
git flow init
- āĻĢāĻŋāĻāĻžāϰ (Feature) āĻŦā§āϰāĻžāĻā§āĻ
āĻĒā§āϰāϤāĻŋāĻāĻŋ āύāϤā§āύ āĻĢāĻŋāĻāĻžāϰ āĻāĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻŦā§āϰāĻžāĻā§āĻā§ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤ āĻāĻā§āϞ⧠develop āĻŦā§āϰāĻžāĻā§āĻ āĻĨā§āĻā§ āϤā§āϰāĻŋ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻžāĻ āĻļā§āώ āĻšāϞ⧠develop āĻ āĻŽāĻžāϰā§āĻ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻā§āύ⧠āĻĢāĻŋāĻāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻ āϏāϰāĻžāϏāϰāĻŋ master āĻāϰ āϏāĻžāĻĨā§ āϝā§āĻā§āϤ āĻšāĻŦā§ āύāĻžāĨ¤
Feature āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž:
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻžāĻĄāĻŧāĻž:
git checkout develop git checkout -b feature_branch
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāĻŋāϝāĻŧā§:
git flow feature start feature_branch
Feature āĻŦā§āϰāĻžāĻā§āĻ āĻļā§āώ āĻāϰāĻž:
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻžāĻĄāĻŧāĻž:
git checkout develop git merge feature_branch
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāĻŋāϝāĻŧā§:
git flow feature finish feature_branch
- āϰāĻŋāϞāĻŋāĻ (Release) āĻŦā§āϰāĻžāĻā§āĻ
āϝāĻāύ develop āĻŦā§āϰāĻžāĻā§āĻā§ āĻĒāϰā§āϝāĻžāĻĒā§āϤ āĻĢāĻŋāĻāĻžāϰ āϝā§āĻā§āϤ āĻšāϝāĻŧ (āĻŦāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āϰāĻŋāϞāĻŋāĻ āϏāĻŽāϝāĻŧ āĻāϞ⧠āĻāϏā§), āϤāĻāύ develop āĻĨā§āĻā§ āĻāĻāĻāĻŋ release āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤
āĻāĻ āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻšāĻāϝāĻŧāĻžāϰ āĻĒāϰ āĻāϰ āύāϤā§āύ āĻĢāĻŋāĻāĻžāϰ āϝā§āĻ āĻāϰāĻž āϝāĻžāĻŦā§ āύāĻžāĨ¤ āĻļā§āϧ⧠āĻŦāĻžāĻ āĻĢāĻŋāĻā§āϏ, āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ, āĻāĻŦāĻ āϰāĻŋāϞāĻŋāĻ āϏāĻāĻā§āϰāĻžāύā§āϤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤ Release āĻŦā§āϰāĻžāĻā§āĻ āĻļā§āώ⧠master āĻāĻŦāĻ develop â āĻĻā§āĻāĻāĻŋāϤā§āĻ āĻŽāĻžāϰā§āĻ āĻšāĻŦā§āĨ¤
Release āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž:
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻžāĻĄāĻŧāĻž:
git checkout develop git checkout -b release/0.1.0
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāĻŋāϝāĻŧā§:
git flow release start 0.1.0
Release āĻŦā§āϰāĻžāĻā§āĻ āĻļā§āώ āĻāϰāĻž:
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻžāĻĄāĻŧāĻž:
git checkout master git merge release/0.1.0
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāĻŋāϝāĻŧā§:
git flow release finish 0.1.0
- āĻšāĻāĻĢāĻŋāĻā§āϏ (Hotfix) āĻŦā§āϰāĻžāĻā§āĻ
āĻšāĻ āĻžā§ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻā§āύ⧠āϏāĻŽāϏā§āϝāĻž āϧāϰāĻž āĻĒāĻĄāĻŧāϞ⧠āĻĻā§āϰā§āϤ āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻāύā§āϝ hotfix āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ āϏāϰāĻžāϏāϰāĻŋ master āĻĨā§āĻā§ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤
āĻĢāĻŋāĻā§āϏ āĻļā§āώ āĻšāϞ⧠āĻāĻāĻŋ master āĻāĻŦāĻ develop (āĻŦāĻž āĻŦāϰā§āϤāĻŽāĻžāύ release āĻŦā§āϰāĻžāĻā§āĻ) â āĻāĻāϝāĻŧā§āĻ āĻŽāĻžāϰā§āĻ āĻšāĻŦā§āĨ¤ āĻāϰāĻĒāϰ master āĻ āύāϤā§āύ āĻāĻžāϰā§āϏāύ āĻā§āϝāĻžāĻ āĻāϰāĻž āĻšāĻŦā§āĨ¤
Hotfix āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž:
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻžāĻĄāĻŧāĻž:
git checkout master git checkout -b hotfix_branch
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāĻŋāϝāĻŧā§:
git flow hotfix start hotfix_branch
Hotfix āĻŦā§āϰāĻžāĻā§āĻ āĻļā§āώ āĻāϰāĻž:
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻžāĻĄāĻŧāĻž:
git checkout master git merge hotfix_branch git checkout develop git merge hotfix_branch
đ āĻāĻŋāĻāĻĢā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāĻŋāϝāĻŧā§:
git branch -D hotfix_branch git flow hotfix finish hotfix_branch
āϏā§āĻŦāĻŋāϧāĻž (Advantages)
āϝā§āĻā§āύ⧠āϏāĻŽāϝāĻŧ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻ āĻŦāϏā§āĻĨāĻž āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻĨāĻžāĻā§āĨ¤
āĻŦā§āϰāĻžāĻā§āĻā§āϰ āύāĻžāĻŽāĻāϰāĻŖ āύāĻŋāϝāĻŧāĻŽāϤāĻžāύā§āϤā§āϰāĻŋāĻ āĻšāĻāϝāĻŧāĻžāϝāĻŧ āϏāĻšāĻā§ āĻŦā§āĻāĻž āϝāĻžāϝāĻŧāĨ¤
āĻāĻŋāĻāĻĢā§āϞ⧠āĻ āύā§āĻ āĻāύāĻĒā§āϰāĻŋāϝāĻŧ āĻā§āϞ⧠āĻāĻā§āϏāĻā§āύāĻļāύāϏāĻš āϏāĻŽāϰā§āĻĨāĻŋāϤāĨ¤
āĻāĻāĻžāϧāĻŋāĻ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻāĻžāϰā§āϏāύ āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āĨ¤
āϰāĻŋāϞāĻŋāĻ-āĻāĻŋāϤā§āϤāĻŋāĻ āϏāĻĢāĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞā§āϰ āĻāύā§āϝ āĻāĻĻāϰā§āĻļāĨ¤
āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ⧠āĻšāĻ āĻžā§ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻāύā§āϝ āĻāϞāĻžāĻĻāĻž āĻā§āϝāĻžāύā§āϞ āĻĻā§āϝāĻŧāĨ¤
āĻ āϏā§āĻŦāĻŋāϧāĻž (Disadvantages)
āĻāĻŋāĻ āĻāϤāĻŋāĻšāĻžāϏ āĻ āύā§āĻ āϏāĻŽāϝāĻŧ āĻāĻāĻŋāϞ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤
master/develop āĻŦāĻŋāĻāĻžāĻāύ Continuous Delivery āĻŦāĻž Continuous IntegrationâāĻāϰ āĻāύā§āϝ āĻāĻāĻŋāϞāϤāĻž āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤
āϝāĻĻāĻŋ āĻāĻāĻāĻžāĻ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύ āĻāĻžāϰā§āϏāύ āĻĨāĻžāĻā§, āϤāĻŦā§ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤
āϏāĻžāϰāϏāĻāĻā§āώā§āĻĒ (Summary)
āĻāĻŋāĻāĻĢā§āϞ⧠āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞā§āϰ āĻŽā§āϞ āϧāĻžāĻĒāĻā§āϞ⧠āĻšāϞā§:
master āĻĨā§āĻā§ āĻāĻāĻāĻŋ develop āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤
āύāϤā§āύ āĻĢāĻŋāĻāĻžāϰ develop āĻĨā§āĻā§ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤
āĻĢāĻŋāĻāĻžāϰ āĻļā§āώ āĻšāϞ⧠develop āĻ āĻŽāĻžāϰā§āĻ āĻšāϝāĻŧāĨ¤
develop āĻĨā§āĻā§ āĻāĻāĻāĻŋ release āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤
release āĻŦā§āϰāĻžāĻā§āĻ āĻļā§āώ āĻšāϞ⧠āĻāĻāĻŋ master āĻāĻŦāĻ develop â āĻāĻāϝāĻŧā§āĻ āĻŽāĻžāϰā§āĻ āĻšāϝāĻŧāĨ¤
master āĻ āĻā§āύ⧠āϏāĻŽāϏā§āϝāĻž āĻšāϞ⧠master āĻĨā§āĻā§ hotfix āĻŦā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤
hotfix āĻļā§āώ āĻšāϞ⧠āĻāĻāĻŋ develop āĻāĻŦāĻ master â āĻāĻāϝāĻŧā§āĻ āĻŽāĻžāϰā§āĻ āĻšāϝāĻŧāĨ¤