- 이때 conflict가 발생할 수 있다.
- conflict난 파일을 확인해 보면
이런 형태로 나타나는데, 이때 코드를 적절하게 수정해준 후 저장해주자.
저장해 준 후 git add -> commit를 하려고 하면 아래 사진처럼 conflict에 대안 commit messages들이 미리 작성되어 있다. 여기에 message를 더해준 후 commit을 하면 된다.
branch를 생성하고, 닫고, 합치고 하는 하나로 묶은 commands를 제송하여 많은 작업은 줄여준다.
git flow
github flow
gitlab flow
- 프로젝트의 메인 repo에서 git init을 시작합니다.
- develop branch에서 push를 합니다.
- 팀원들은 fork를 받은 후 각자의 repo에서 git init을 시작하여 초기화하는 것으로 git-flow의 사용을 시작합니다.
- 만약 fork를 하지 않는다면, 1.1은 생략하셔도 됩니다.
git flow init
- main 프로젝트의 update 상황을 받을 수 있게 upstream을 연결해주어야 합니다.
- 만약 본인의 remote가 origin 뿐이라면 직접 upstream remote를 추가해야 합니다.
git remote add upstream {main repo 주소}
으로 추가해 줍니다.
- 개발 전 반드시
git pull upstream develop
으로 본인 develop branch를 최신화 하도록 합니다.
- 새 기능의 개발은 'develop' 브랜치에서 시작합니다.
- 다음과 같이 새 기능의 개발을 시작합니다.
git flow feature start MYFEATURE
- 이것은 'develop'에 기반한 새 기능(feature) 브랜치를 생성하고 그 브랜치로 전환합니다.
- 만약 fork를 하지 않는다면, commit후 push를 진행해서 branch를 publish한 하고, 아래 명령어만 사용하면 됩니다.
git flow feature finish MYFEATURE
- 명령어를 치기 전에 add와 commit을 진행해줘야 합니다.
- 기능 개발을 완료합니다. 이것은 다음 작업들을 수행합니다.
- MYFEATURE 브랜치를 'develop'에 병합(merge)합니다.
- 기능 브랜치를 삭제합니다.
- 'develop' 브랜치로 전환합니다.
- 자신의 원격 저장소로 push 합니다.
- 자신의 원격 저장소에서 Pull Request를 생성합니다.
- 개인 develop branch -> main develop branch로 request를 보낸니다.
- 이때 reviewer를 등록하여 리뷰를 받도록 합니다.
- 팀장 또는 팀원이 review후 merge합니다.
git flow release start RELEASE [BASE]
git flow release finish RELEASE
- 다음 단계를 수행합니다. vi창이 나옵니다.
- 'release' 브랜치를 'master' 브랜치에 병합(merge)
- 릴리스를 릴리스 이름으로 태그(tag) 이 버전을 만들기 위해 어떤 개발을 했는지를 전부 다 적어줘야 합니다.
- 릴리스를 'develop' 브랜치로 재병합(back-merge)
- 'release' 브랜치 삭제
- 그리고 develop, main의 내용을 origin에 push해 줍니다.
git push --tags를 사용해 태그들을 push하는 것을 잊지마세요.