#0 git의 3가지 영역
- Working Directory: 직접 코드를 작성하는 공간. 코드를 생성/수정/삭제하는 공간이다.
- Staging Area: 버전이 될 코드가 존재하는 공간. working directory에서 버전으로 만들고 싶은 파일을 저장하는 임시 공간이다.
- Repository: 버전이 저장되어 있는 공간.
git 업로드 순서
- 코드 작성 (수정)
- git add
- git commit
- git push
#1 git 명령어
git 초기 설정
# 현재 위치에서 로컬 저장소 생성
$ git init
# 깃 환경에서 사용자 이름을 지정
$ git config --global user.name "[사용자명]"
# 깃 환경에서 사용자 이메일을 지정
$ git config --global user.email "[사용자이메일]"
# 현재 상태(트래킹) 조회
$ git status
git 스테이징
# 모든 파일을 스테이지에 올림
$ git add .
# 특정 파일을 스테이지에 올림
$ git add [파일명.확장자]
# 전체 add 취소
$ git reset HEAD
# 특정 파일 add 취소
$ git restore --staged [파일명]
git 커밋
# 커밋 메시지를 붙여 커밋
$ git commit -m "[메시지]"
# 커밋 수정 (파일 수정 후)
$ git add .
$ git commit --amend # 최신 커밋 수정
원격 저장소
# 원격 저장소에 연결
$ git remote add origin [gitlab/github 레포지토리 주소]
# 현재 원격 저장소의 변경 사항 내역을 업데이트
$ git remote update
# 로컬 저장소 커밋을 맨 처음 원격 저장소에 올릴 때
$ git push -u origin master
# -u로 등록 후 로컬 저장소의 커밋을 원격 저장소에 올릴 때
$ git push
$ git push origin master
# 원격 저장소의 커밋을 로컬 저장소로 가져올 때
$ git pull origin master
# 원격 저장소 복제
$ git clone [원격 저장소 주소]
# 원격 저장소의 Repository를 clone 받았는지 확인
$ git remote -v
브랜치
# 브랜치 조회
$ git branch
# 브랜치 추가
$ git branch [브랜치명]
# 브랜치 삭제
$ git branch - d [브랜치명]
# 브랜치 이동
$ git checkout [브랜치명]
# 브랜치 생성 및 이동 (동시)
$ git checkout -b [브랜치명]
#2 Git-Flow
Git-Flow는 브랜치를 크게 3~4가지로 나눠 개발하는 버전 관리 전략이다. 브랜치 별로 역할과 책임을 나눠 버전 관리를 할 수 있다.
메인 Branch
- Master Branch: 배포 가능한 상태만을 관리하는 브랜치
- Develop Branch: 다음 배포할 것을 개발하는 브랜치
보조 Branch
- Freature Branch: 기능을 개발하는 브랜치, develop branch에서 나눠지고 기능을 다 완성하면 develop branch로 merge
릴리즈 Branch
- Release Branch: 배포를 위한 최종적인 버그 수정 등의 개발을 수행하는 브랜치, QA를 위해 develop branch에서부터 생성
핫픽스 Branch
- Hotfix Branch: 배포한 버전에서 긴급 수정이 필요할 때 master branch에서 분리하는 브랜치, develop branch에도 변경 사항을 merge하여 문제 부분을 함께 반영해야 함
* merge request 과정은 git 명령어가 아닌 gitlab에서 진행하는 것을 추천