Git은 VCS(Version Control System 으로써 버전을 관리하는 시스템입니다.
Git은 Linux Torvals(리눅스 토발즈)에 의해 만들어 졌습니다.
한번씩은 들어본 이름이죠 ㅎㅎ
감사한 마음으로 잘 써야줘
Git Merge하기 위해서 우선되는 것이 있습니다.
바로 < Branch > 입니다.
여러 갈래 작업 공간을 나누어서 독립적으로 작업을 할 수 있게 만드는 역할입니다.
## 조회
git branch : 로컬 저장소의 브랜치 목록을 확인합니다.
git branch -r : 원격 저장소의 브랜치 목록을 확인합니다.
## 생성
git branch {branch name} : 새 branch 생성 이름은 branch name *실제로 적을 때는 {}를 떼주세요
git branch {branch name} {commit ID} : 특정 커밋을 기준으로 브랜치 생성
## 삭제
git branch -d {branch name} : 병합된 브랜치만 삭제
git branch -D {branch name} : 강제로 브랜치 삭제
## 이동
git switch {branch name} : 현재 위치에서 다른 브랜치로 이동
git switch -c {branch name} : 브랜치를 새로 생성 및 이동
git switch -c {branch name} {commit ID} : 특정 커밋을 기준으로 브랜치 생성 및 이동
** switch 전에 변경사항을 미리 commit 해야한다.
그럼 한번 만들어 볼까요?
1. git branch { 이름 }
2. git switch { 이름 } : 새로운 브랜치로 변경을 하겠다는 것을 의미해요. switch의 코드가 기본 master 코드와 다르다면 자동으로 변경되는 것을 확인할 수 있어요. 다만 switch를 할때에 주의점이 있어요.
주의점 : 기존의 브랜치에서 추가적인 코드가 작성상태가 아니어야한다는 것!
이를 위해서 기존의 브랜치는 git stash를 통해 stash코드에 보관하거나 commit으로 코드를 관리상태로 올려둔 뒤에 하시는 것을 추천해요. 아니면 에러가 발생한답니다 ㅎㅎ
3. 상태 확인
(2)에서 merge에 대해 설명하겠습니다.
여기서 잠깐!
일부 라이브러리를 사용하면 이러한 브랜치 관리를 쉽게 적용할수 있답니다. 참고해주세요
git flow가 이미 만들어진 상태에서 관리하는 것을 말하는데 아래와 같이 관리를 할수 있게 만들어준답니다.
master : 라이브 서버에 제품으로 출시되는 브랜치.
develop : 다음 출시 버전을 대비하여 개발하는 브랜치.
feature : 추가 기능 개발 브랜치. develop 브랜치에 들어간다.
release : 다음 버전 출시를 준비하는 브랜치. develop 브랜치를 release 브랜치로 옮긴 후 QA, 테스트를 진행하고 master 브랜치로 합친다.
hotfix : master 브랜치에서 발생한 버그를 수정하는 브랜치.