티스토리 뷰
Git
- 온라인으로 소스코드 공유 및 협업, 저장할 수 있는 시스템
흐름도
1. 저장소
a. workspace
- 실제 소스코드를 작업하는 공간
- 현재 작업 중인 파일이 있는 내 PC의 directory
- 일반적인 프로젝트 폴더
$ git add 파일명 // workspace의 내역을 index에 올림, 소스코드의 변경 내역을 저장
b. index (stage)
- workspace의 코드를 저장하는 공간
- 수정 내역의 대기 장소
c. local repository
- 개인 PC에 저장되는 저장소
$ git commit -m “commit message” // index의 저장된 소스코드를 local repository로 올림
d. remote repository
- 원격 저장소 전용 서버에서 관리됨
- 공유되는 저장소
- github 등
$ git push origin 브랜치 // remote repository로 올리기
2. Workspace -> Remote repository
a. repository 생성
$ git init
b. 변경 내역을 stage에 올리기
$ git add '파일명'
c. git의 상태 보기
$ git staus
d. 커밋하기 (Local repository에 올리기)
$ git commit -m 'commit message'
e. 푸쉬하기 (Remote repository에 올리기)
$ git push origin '브랜치'
3. Remote repository -> Workspace (-> Remote repository)
* fork와 clone의 차이점
-
fork : 다른 사람의 git repository를 내 git repository로 그대로 복제하는 기능(수정하고 싶을 때)
-
clone : 특정 repository를 내 local repository로 복사하여 새로운 저장소를 만드는 기능
a. fork
- github UI를 통해 진행
b. clone
$ git clone '가져올 원격 저장소 주소'
- single-branch 옵션
$ git clone '가져올 원격 저장소 주소' -b '브랜치' --single-branch
c. workspace -> remote repository의 b단계부터 동일
d. Pull Request
- github UI를 통해 진행
- 내가 한 작업을 원본 저장소에 반영해달라고 요청하는 것
Work flow
1. master branch
- 출시될 수 있는 브랜치
2. develop branch
- 다음 출시 버전을 개발하는 브랜치
- master branch에서부터 시작된 브랜치
- 수시로 버그를 수정한 커밋들이 추가됨
- master, develop branch를 메인 브랜치라고 함
3. feature branch
- 기능을 개발하는 브랜치
- develop branch에서 생성
- 작업 완료 후 develop branch로 merge
4. release branch
- 이번 출시 버전을 준비하는 브랜치 (QA)
- develop branch에서 생성
5. hotfix branch
- 출시 버전에 발생한 버그를 수정하는 브랜치
- 긴급 수정하기 위한 브랜치
Git Flow
- 소스 코드를 관리하고 출시하기 위한 브랜치 관리 전략 중 하나
- 프로젝트에 참여하는 인원이 여러 명일 경우 효율적인 분업과 협업의 편리를 위해 사용됨
- 버전 관리를 위해 워크 플로우 전략이 필요
'CS > etc.' 카테고리의 다른 글
객체지향 프로그래밍(OOP)이란? (0) | 2021.03.03 |
---|---|
Git 명령어와 명령 동작 정리하기 (0) | 2021.03.03 |
시간복잡도 (0) | 2020.08.08 |