GIT WORKFLOW
STEP BY STEP
Presenter: BinhQD
Twitter: @binhqd
Github: binhqd
LinkedIn: /in/binhqd
ROLES
1. Developer
2. Team Lead
3. Tester
4. QM
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
STEPS: STEP 1 - Creat develop branch
NOTE
❖ develop must be branched from master
❖ Developers are not allowed to push their commit directly to
this branch
❖ Issue’s title must be meaningful and need to be applied with
label(s): Urgent, Block, Bug, Support, Enhancement, etc
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
I.2 Create branches from dev
STEPS: STEP 2 - Create feature branch from develop
NOTE
❖ feature branches must be created from develop
❖ develop must be up-to-date before creating new branch
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
STEPS: STEP 3 - Add commits
NOTE
❖ Ignore files/dirs that unrelated to project or contain
development information
❖ Each commit must be clean
❖ Don’t include works of other commit
❖ Add issue references
❖ Each commit message should follow “Commit Message
Convention”
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
STEPS: STEP 4 - Create Pull Request
NOTE
❖ Developers must test their code by themselves before
creating a Pull Request
❖ Developers must review their code line by line, file by file
before create a PR
❖ Add issue references
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5
- Review PRs
- Merge PRs
Do testing per PR. Review by random pick
STEPS: STEP 5 - Review & Merge PR
STEPS: STEP 5 - Review & Merge more PRs
NOTE
❖ Team lead must review developer’s code carefully before
doing a Merge
➢ Convention/Standard
➢ Typo
➢ Detect hidden issues, risk
➢ Running CI
➢ Merge locally and running demo
❖ Reject:
➢ Add reject comment
❖ Approve & Merge
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5
- Review PRs
- Merge PRs
Do testing per PR. Review by random pick
I.6
- Create/Merge branch for releases
(release)
- Running CI
- Create new branches for fixing bugs
(bugfix) from release
- Update bug fixes back to develop
Regressive Test per
release on Staging
site (UAT)
Review regressive test
result.
Approve/Deny
STEPS: STEP 6 - Create release branch
STEPS: STEP 6 - Fix bugs for release branch
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5
- Review PRs
- Merge PRs
Do testing per PR. Review by random pick
I.6
- Create/Merge branch for releases
(release)
- Running CI
- Create new branches for fixing bugs
(bugfix) from release
- Update bug fixes back to develop
Regressive Test per
release on Staging
site (UAT)
Review regressive test
result.
Approve/Deny
I.7
Req: Approval from QM
- Create PR from release branch to master
- Running CI
- Test Restore script
Review CI output
Approve/Deny
STEPS: STEP 7 - Create PR from release to master
GIT Steps
Step Developer Team Lead Tester QM
I.1 Create issues
- Create “develop” branch
- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5
- Review PRs
- Merge PRs
Do testing per PR. Review by random pick
I.6
- Create/Merge branch for releases
(release)
- Running CI
- Create new branches for fixing bugs
(bugfix) from release
- Update bug fixes back to develop
Regressive Test per
release on Staging
site (UAT)
Review regressive test
result.
Approve/Deny
I.7
Req: Approval from QM
- Create PR from release branch to master
- Running CI
- Test Restore script
Review CI output
Approve/Deny
I.8
Req: Approval from QM
- Merge PR from Release to master
- Running CI:
+ Auto Deployment
+ Auto Tag for each Release
Regressive Test per
merged PR (UAT)
Review regressive test
output
STEPS: STEP 8 - Review & Merge PR to master
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
STEPS: Create bugfix for master
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
STEPS: Fix bug for hotfix branch
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
STEPS: Create PR for hotfix
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
II.4
- Review PRs
- Merge PRs from developers to
hotfix
Do testing per PR
STEPS: Review & Merge PR for hotfix
STEPS: Continue fixing bugs for hotfix
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
II.4
- Review PRs
- Merge PRs from developers to
hotfix
Do testing per PR
II.5
- Create PR from hotfix branch to
Master
- Running CI
- Test Restore script
Review CI output
Approve/Deny
STEPS: Create PR to update master
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
II.4
- Review PRs
- Merge PRs from developers to
hotfix
Do testing per PR
II.5
- Create PR from hotfix branch to
Master
- Running CI
- Test Restore script
Review CI output
Approve/Deny
II.6
Req: Approval from QM
- Merge PR from hotfix to master
- Running CI:
+ Auto Deployment
+ Auto Tag for each Release
Regressive Test per
merged PR (UAT)
Review regressive test
output
STEPS: Review & Merge master from bugfix
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1
Restore LIVE to previous TAG using
script
Regressive test after
restore
Review changes
STEPS: Revert to previous version
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1
Restore LIVE to previous TAG using
script
Regressive test after
restore
Review changes
III.2
Create branch for fixing bugs
(bugfix) from previous Release Point
(release branch)
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1
Restore LIVE to previous TAG using
script
Regressive test after
restore
Review changes
III.2
Create branch for fixing bugs
(bugfix) from previous Release Point
(release branch)
III.3 Add commits Add commits
STEPS: Fixing bugs for release branch
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1
Restore LIVE to previous TAG using
script
Regressive test after
restore
Review changes
III.2
Create branch for fixing bugs
(bugfix) from previous Release Point
(release branch)
III.3 Add commits Add commits
III.4 Create PR - Update bugfix back to develop
STEPS: Create PR for release branch from bugfixes
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1
Restore LIVE to previous TAG using
script
Regressive test after
restore
Review changes
III.2
Create branch for fixing bugs
(bugfix) from previous Release Point
(release branch)
III.3 Add commits Add commits
III.4 Create PR
III.5
- Review PRs
- Merge PRs from bugfix to release
Do testing per PR. Review by random pick
STEPS: Review & Merge bug fixes for release
GIT Steps
Step Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1
Restore LIVE to previous TAG using
script
Regressive test after
restore
Review changes
III.2
Create branch for fixing bugs
(bugfix) from previous Release Point
(release branch)
III.3 Add commits Add commits
III.4 Create PR
III.5
- Review PRs
- Merge PRs from bugfix to release
Do testing per PR. Review by random pick
Back to I.7
STEPS: Create PR from release to master
Back to step I.7 for to complete the workflow
Thanks

Git workflow step by step

  • 1.
    GIT WORKFLOW STEP BYSTEP Presenter: BinhQD Twitter: @binhqd Github: binhqd LinkedIn: /in/binhqd
  • 4.
    ROLES 1. Developer 2. TeamLead 3. Tester 4. QM
  • 5.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues
  • 6.
    STEPS: STEP 1- Creat develop branch
  • 7.
    NOTE ❖ develop mustbe branched from master ❖ Developers are not allowed to push their commit directly to this branch ❖ Issue’s title must be meaningful and need to be applied with label(s): Urgent, Block, Bug, Support, Enhancement, etc
  • 8.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues I.2 Create branches from dev
  • 9.
    STEPS: STEP 2- Create feature branch from develop
  • 10.
    NOTE ❖ feature branchesmust be created from develop ❖ develop must be up-to-date before creating new branch
  • 11.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues I.2 Create branches from dev I.3 Add commits
  • 12.
    STEPS: STEP 3- Add commits
  • 13.
    NOTE ❖ Ignore files/dirsthat unrelated to project or contain development information ❖ Each commit must be clean ❖ Don’t include works of other commit ❖ Add issue references ❖ Each commit message should follow “Commit Message Convention”
  • 14.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues I.2 Create branches from dev I.3 Add commits I.4 Create Pull Requests (PR)
  • 15.
    STEPS: STEP 4- Create Pull Request
  • 16.
    NOTE ❖ Developers musttest their code by themselves before creating a Pull Request ❖ Developers must review their code line by line, file by file before create a PR ❖ Add issue references
  • 17.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues I.2 Create branches from dev I.3 Add commits I.4 Create Pull Requests (PR) I.5 - Review PRs - Merge PRs Do testing per PR. Review by random pick
  • 18.
    STEPS: STEP 5- Review & Merge PR
  • 19.
    STEPS: STEP 5- Review & Merge more PRs
  • 20.
    NOTE ❖ Team leadmust review developer’s code carefully before doing a Merge ➢ Convention/Standard ➢ Typo ➢ Detect hidden issues, risk ➢ Running CI ➢ Merge locally and running demo ❖ Reject: ➢ Add reject comment ❖ Approve & Merge
  • 21.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues I.2 Create branches from dev I.3 Add commits I.4 Create Pull Requests (PR) I.5 - Review PRs - Merge PRs Do testing per PR. Review by random pick I.6 - Create/Merge branch for releases (release) - Running CI - Create new branches for fixing bugs (bugfix) from release - Update bug fixes back to develop Regressive Test per release on Staging site (UAT) Review regressive test result. Approve/Deny
  • 22.
    STEPS: STEP 6- Create release branch
  • 23.
    STEPS: STEP 6- Fix bugs for release branch
  • 24.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues I.2 Create branches from dev I.3 Add commits I.4 Create Pull Requests (PR) I.5 - Review PRs - Merge PRs Do testing per PR. Review by random pick I.6 - Create/Merge branch for releases (release) - Running CI - Create new branches for fixing bugs (bugfix) from release - Update bug fixes back to develop Regressive Test per release on Staging site (UAT) Review regressive test result. Approve/Deny I.7 Req: Approval from QM - Create PR from release branch to master - Running CI - Test Restore script Review CI output Approve/Deny
  • 25.
    STEPS: STEP 7- Create PR from release to master
  • 26.
    GIT Steps Step DeveloperTeam Lead Tester QM I.1 Create issues - Create “develop” branch - Create/Assign issues I.2 Create branches from dev I.3 Add commits I.4 Create Pull Requests (PR) I.5 - Review PRs - Merge PRs Do testing per PR. Review by random pick I.6 - Create/Merge branch for releases (release) - Running CI - Create new branches for fixing bugs (bugfix) from release - Update bug fixes back to develop Regressive Test per release on Staging site (UAT) Review regressive test result. Approve/Deny I.7 Req: Approval from QM - Create PR from release branch to master - Running CI - Test Restore script Review CI output Approve/Deny I.8 Req: Approval from QM - Merge PR from Release to master - Running CI: + Auto Deployment + Auto Tag for each Release Regressive Test per merged PR (UAT) Review regressive test output
  • 27.
    STEPS: STEP 8- Review & Merge PR to master
  • 28.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE (severity: medium/low) II.1 Create hotfix branch
  • 29.
  • 30.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE (severity: medium/low) II.1 Create hotfix branch II.2 Add commits Add commits
  • 31.
    STEPS: Fix bugfor hotfix branch
  • 32.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE (severity: medium/low) II.1 Create hotfix branch II.2 Add commits Add commits II.3 Create PR
  • 33.
    STEPS: Create PRfor hotfix
  • 34.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE (severity: medium/low) II.1 Create hotfix branch II.2 Add commits Add commits II.3 Create PR II.4 - Review PRs - Merge PRs from developers to hotfix Do testing per PR
  • 35.
    STEPS: Review &Merge PR for hotfix
  • 36.
    STEPS: Continue fixingbugs for hotfix
  • 37.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE (severity: medium/low) II.1 Create hotfix branch II.2 Add commits Add commits II.3 Create PR II.4 - Review PRs - Merge PRs from developers to hotfix Do testing per PR II.5 - Create PR from hotfix branch to Master - Running CI - Test Restore script Review CI output Approve/Deny
  • 38.
    STEPS: Create PRto update master
  • 39.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE (severity: medium/low) II.1 Create hotfix branch II.2 Add commits Add commits II.3 Create PR II.4 - Review PRs - Merge PRs from developers to hotfix Do testing per PR II.5 - Create PR from hotfix branch to Master - Running CI - Test Restore script Review CI output Approve/Deny II.6 Req: Approval from QM - Merge PR from hotfix to master - Running CI: + Auto Deployment + Auto Tag for each Release Regressive Test per merged PR (UAT) Review regressive test output
  • 40.
    STEPS: Review &Merge master from bugfix
  • 41.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE caused critical issues (Blocking issues) III.1 Restore LIVE to previous TAG using script Regressive test after restore Review changes
  • 42.
    STEPS: Revert toprevious version
  • 43.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE caused critical issues (Blocking issues) III.1 Restore LIVE to previous TAG using script Regressive test after restore Review changes III.2 Create branch for fixing bugs (bugfix) from previous Release Point (release branch)
  • 44.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE caused critical issues (Blocking issues) III.1 Restore LIVE to previous TAG using script Regressive test after restore Review changes III.2 Create branch for fixing bugs (bugfix) from previous Release Point (release branch) III.3 Add commits Add commits
  • 45.
    STEPS: Fixing bugsfor release branch
  • 46.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE caused critical issues (Blocking issues) III.1 Restore LIVE to previous TAG using script Regressive test after restore Review changes III.2 Create branch for fixing bugs (bugfix) from previous Release Point (release branch) III.3 Add commits Add commits III.4 Create PR - Update bugfix back to develop
  • 47.
    STEPS: Create PRfor release branch from bugfixes
  • 48.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE caused critical issues (Blocking issues) III.1 Restore LIVE to previous TAG using script Regressive test after restore Review changes III.2 Create branch for fixing bugs (bugfix) from previous Release Point (release branch) III.3 Add commits Add commits III.4 Create PR III.5 - Review PRs - Merge PRs from bugfix to release Do testing per PR. Review by random pick
  • 49.
    STEPS: Review &Merge bug fixes for release
  • 50.
    GIT Steps Step DeveloperTeam Lead Tester QM If errors occurs on LIVE caused critical issues (Blocking issues) III.1 Restore LIVE to previous TAG using script Regressive test after restore Review changes III.2 Create branch for fixing bugs (bugfix) from previous Release Point (release branch) III.3 Add commits Add commits III.4 Create PR III.5 - Review PRs - Merge PRs from bugfix to release Do testing per PR. Review by random pick Back to I.7
  • 51.
    STEPS: Create PRfrom release to master
  • 52.
    Back to stepI.7 for to complete the workflow
  • 53.