# ssh key 생성(이미 키가 있으면 생략)mkdir ~/.ssh
ssh-keygen -t rsa -C "${github_id}@github.com"# ssh publick key 복사cat ~/.ssh/id_rsa.pub
# 복사한 키를 https://github.com/settings/ssh 에 등록한다.
github ssh 포트가 다르면 추가 설정이 필요
~/.ssh/config 파일에 아래 내용을 추가한다. (없으면 파일 생성)
1
2
3
4
5
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa
Port 20022
Git flow 전략
Branch별 요약
master branch : 배포되었거나 배포될 소스가 저장되는 브랜치
develop branch : 다음 배포를 위해서 개발을 진행하는 브랜치
여러명의 개발자가 공유하며 개발을 진행하는 브랜치
로컬 브랜치에서 개발이 완료되면 완료된 소스를 develop 브랜치에 푸시하거나 PR을 보내 리뷰후 merge 하는것으로 개발이 진행된다.
feature branch : 각 개발자에 의해 기능 단위 개발이 진행되는 브랜치
로컬에서 개발을 진행하는 브랜치
develop 브랜치에 merge된다.
hotfixs branch : 배포 버전에 생긴 문제로 긴급한 트러블슈팅이 필요할 때 개발이 진행되는 브랜치
master 브랜치에서 생성
master 브랜치로 직접 merge
develop 브랜치에도 적용 필요
release branch : 내부적으로 배포할 준비가 되었다고 생각되는 소스가 저장되는 브랜치
QA에서 테스트를 진행할 브랜치
QA중 버그발생시, 바로 적용. develop 브랜치에도 적용 필요
추가 기능개발을 위해 develop 브랜치로 넘어가서는 안된다. 추가기능은 다음 release에 적용필요
Start Project
Clone Project from github
소스코드 Git Clone
프로젝트 디렉토리로 이동
git flow init
로컬에 master 브랜치와 develop 브랜치가 생성된 상태에서 진행한다.
git flow init 명령어를 실행하면 아래와 같이 설정을 확인하는 대화 모드로 진입한다.
모든 설정을 default로 사용한다.(feature, release, hotfix, …)
bugfix, support branch는 최근 git flow에 추가된 브랜치이며 git flow edition/version에 따라 없을수도 있고 실험적인 기능이므로 사용하지 않음.
Mac에서는 Cmd + Option + f 로 팝업창 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ git flow init
Which branch should be used for bringing forth production releases?
- master
Branch name for production releases: [master]Branch name for"next release" development: [develop]How to name your supporting branch prefixes?
Feature branches? [feature/]Bugfix branches? [bugfix/]Release branches? [release/]Hotfix branches? [hotfix/]Support branches? [support/]Version tag prefix? []