Info
This article was originally written in Korean and has been translated using ChatGPT.
Prerequsite
Installing Git
- Command to verify installation: git
 - Download Git suitable for your operating system : https://git-scm.com/
 
Git flow Installation
- Git Flow is a utility for supporting branch management in Git.
 - Command to verify installation : git flow
 - Installation guide: https://github.com/petervanderdoes/gitflow-avh/wiki/Installation
 - For macOS, use : 
brew install git-flow-avh 
Setting up SSH for GitHub
- GitHub offers support for both HTTPS and SSH protocols.
 - Pros and cons exist for each : https://git-scm.com/book/ko/v2/Git-서버-프로토콜
 - Run the commands below to add your SSH key to GitHub
 
 | 
 | 
- If the GitHub SSH port differs, extra configuration is needed.
 - Insert the details below into the ~/.ssh/config file. (Create this file if it’s not already present)
 
 | 
 | 
Git Flow Strategy

Branch Overview
- master branch: Houses the source that is deployed or awaiting deployment.
 - develop branch: Used for development in preparation for the next release.
- A collaborative branch for multiple developers.
 - Development involves pushing completed code to develop branch or merging after PR review.
 
 - feature branch: For feature-specific development by individual developers.
- Branch for local development.
 - To be merged into the develop branch.
 
 - hotfix branch: For urgent fixes required in the deployed version.
- Originates from the master branch.
 - Merged directly into the master branch and also applied to the develop branch.
 
 - release branch: Contains code ready for internal release.
- The branch used for QA testing.
 - Immediate application of fixes for bugs found during QA, with necessary changes also made to the develop branch.
 - Should not be used for additional feature development; such features should be reserved for the next release."
 
 
Start Project
Clone Project from github
- Clone the source code using Git
 - Navigate to the project directory
 
git flow init
- Ensure that the master and develop branches are already established locally.
 - Running ‘git flow init’ will launch a dialog mode to confirm settings, as shown below.
 - Stick to the default settings for all configurations (feature, release, hotfix, …).
 - The bugfix and support branches, recent additions to git flow, may be absent or experimental depending on the git flow edition/version, and therefore are not recommended for use.
 - On macOS, generate a popup window using 
Cmd+Option+f. 
 | 
 | 
Git Flow Commands
Info
Use MYFEATURE and RELEASE as branch names
ex) feature/test123 → FEATURE = test123
- Start a new feature : 
git flow feature start MYFEATURE - Complete a feature : 
git flow feature finish MYFEATURE - Publish a feature : 
git flow feature publish MYFEATURE - Pull a published feature : 
git flow feature pull origin MYFEATURE - Start a release : 
git flow release start RELEASE [BASE] - Finish a release : 
git flow release finish RELEASE - Start a hotfix : 
git flow hotfix start VERSION [BASENAME] - Finish a hotfix : 
git flow hotfix finish VERSION