Git
[GIT] Git Branch
걸어가는 신사
2022. 1. 17. 04:27
위 글은 코드프레소 Java 웹 개발 체험단 활동 중
실무자가 알려주는 Git 활용한 프로젝트 관리 수업을 듣고 정리한 글입니다.
코드프레소 URL : https://www.codepresso.kr/
브랜치(branch)
- 기본 브랜치로부터 파생한 독립적인 작업 공간
- 최신 커밋을 가리키는 일종의 포인터이다.
- 용량이 매우 가볍다.
- 생성, 이동, 병합(merge)이 매우 쉽다.
실습
1. branch 확인
- Git은 기본적으로 master 브랜치를 생성한다.
- 현재 작업 중인 브랜치 확인하는 명령어
$ git branch
- master 브랜치는 첫 번째 커밋을 만들어야 생성된 커밋을 가리킬 수 있다.
- 커밋이 생성되지 않았다면 $ git branch 명령어를 입력하여도 아무것도 나오지 않는다.
- 커밋 생성 후
2. HEAD
- 현재 브랜치를 가리키는 일종의 포인터
- 현재 브랜치의 마지막 커밋에 대한 스냅샷
- 만약 HEAD를 움직인다면 내가 작업 중인 branch를 바꾸는 것이다.
- HEAD가 master branch를 가리키고 있다.
- 새로운 커밋 생성 (Commit 2)
- 다음 커밋이 생성되면 커밋은 이전 커밋이 무엇인지 저장한다.
3. 새로운 브랜치 생성
$ git branch [생성할 브랜치명]
ex) $ git branch feature-login
4. 작업 브랜치 이동
(1) 작업 브랜치 이동
- 작업 브랜치의 이동은 HEAD의 이동이다.
- HEAD는 checkout 대상 브랜치로 이동한다.
- 로컬 저장소의 상태는 HEAD가 가리키는 마지막 커밋이 최신이 된다.
- 작업 디렉토리의 파일 상태도 변경된다.
$ git checkout [이동할 브랜치명]
ex) $ git checkout feature-login
(2) 새로운 커밋 생성 (Commit 3)
(3) 이전 브랜치(master)로 이동
- $ git checkout master (master 브랜치로 이동)
- 세 번째 commit을 하기위해 생성하였던 LoginService.java는 보이지 않는다.
- 각 branch는 독립적인 공간이므로 master branch 이동시 세번째 커밋이 보이지 않는다.
- 두 번째 commit은 아직 master branch가 가리키고 있다.
- 세 번째 commit은 feature-login branch가 가리키고 있다.
(4) 새로운 commit 생성 (Commit 4)
$ git log --all --graph
- branch와 상관없이 모든 commit들을 보여준다.
$ git log -u
- 커밋 내용 + 커밋된 파일의 내용도 볼 수 있다.
5. 브랜치의 사용
- 개발 중 이슈가 발생되면 어떻게 해야 할까?
- 새로운 branch를 생성해서 작업을 한다.
(1) issue branch 생성
$ git checkout -b issue
- $ git branch issue + $ git checkout issue
- 브랜치 생성과 동시에 이동할 수 있다.
(2) 새로운 커밋 생성 (5번째 commit)
반응형