# 어떤 제품의 사용 설명서를 만든다고 상상해보자.

// 제품 출시 후 고객사마다 추가로 요구하는 사항이 달라서,

//  제품이 달라질 것이고, 사용 설명서도 기존 사용 설명서와 달라질 것이다.

// 이를 예시로 브랜치를 설명한다.

2. 브랜치(Branch)만들기

   2-1. 실습 상황 설정하기

          - 디렉토리를 만들고, 그 안에 사용 설명서라고 생각하고 텍스트 파일 만들기

홈에 manual 디렉토리 생성하기
manual 디렉토리를 저장소로 만들고, .git 디렉터리 확인하기
work.txt 파일 생성 후 스테이지에 올리고 커밋하기

 

커밋 내역 확인하기
work.txt 수정하고, work 2 메시지로 커밋 하기
work.txt 수정하고, work 3 메시지로 커밋하기 

현재 master branch가 가장 최신 커밋인 'work 3'를 가리키고 있고,

HEAD가 master branch를 가리키고 있다.
(HEAD는 여러 브랜티 중 현재 작업 중인 브랜치를 가리킴)

 

# 지금까지는 기존 사용 설명서를 만드는 작업이었다.

# 앞으로 고객사마다 달라지는 사용 설명서를 브랜치를 이용하여 처리한다.

// apple, google, ms 라는 고객사가 있다고 가정한다.

 

   2-2. 새 브랜치 만들기
       -  git branch : 깃에서 브랜치를 만들거나 확인하는 명령
          1)  git branch : 깃에서 현재 저장소의 브랜치를 확인한다.

          2)  git branch (만들려는 브랜치 이름): 깃에서 해당 브랜치를 만든다.

(HEAD -> master, apple) : 저장소에 master, apple 브랜치가 있고, 현재 작업 중인 브랜치는 master이다.


   2-3. 브랜치 사이 이동하기 - git checkout

master 브랜치 뿐만 아니라 ms, google, apple 브랜치에서도 최신 커밋이 work 3이다.
--oneline : 한 줄에 한 커밋씩 나타낸다. 간략히 확인할 때 사용한다.

master work 4는 master 브랜치에만 적용되어있다.

ms, google, apple 브랜치는 아직 work 3 커밋 상태이다.

브랜치로 이동한다 = 브랜치로 체크 아웃한다.

$ 위에 나타난 파일 경로 끝에 (apple)이라고 표시가 바뀐다.

master에서 apple 브랜치로 바꾸었을 때 변화

apple 브랜치를 분기하기 전까지 master에 있던 커밋들은 그대로 복사되어 있다.

(HEAD -> apple)최신 커밋 해시에서 apple을 가리킨다.

최신 커밋이 work 3이므로 work.txt 내용에 master content 4가 없다.

따라서, master 브랜치에 추가된 커밋은 apple 브랜치에 영향을 주지 않았다.

 

+ Recent posts