#브랜치 (branch): 기능 변경을 하고 싶을 때 생성 및 사용
#머지 (merge): 한 브랜치의 내용을 다른 브랜치에 반영
#체크아웃 (checkout): 저장소에서 특정 커밋이나 브랜치로 돌아가고 싶을 때 사용

● 기능 변경하기

이미 돌아가고 있는 프로그램에서 기능을 바꾸고 싶은 일이 생길 수 있다.

그럴 때 어떻게 해야할까? 보통 초보 개발자들은 주석을 활용한다. 돌아가고 있는 부분을 삭제하면 아까우니

주석 처리하고 개발을 하지만 시간이 지나면 코드가 엉망진창으로 믹싱되는데 이런 코드를 스파게티 코드라한다.

이런 상황을 막기 위해서 브랜치를 사용!!


# 시나리오

  1. 기존 문서에 새로운 설명을 추가했다.
  2. 내용이 맘에 안 들어서 다시 작업을 하고 싶다.
  3. 혹시 모르니 기존 내용은 남겨 두고 싶다.
  4. 새로 작업을 한 후에 비교해 보고 더 좋은 걸 결과물로 반영하자.

● 현재 상태

현재 폴더에는 hello.md 파일이 있고 커밋까지 되어있으며, 커밋 로그는 아래 그림처럼 되어 있다.

간단하게 보기 위해서 그림에 보이는 원격 브랜치 체크박스를 해제한 상태이다


● 새로운 브랜치 생성하기

아무 설정도 안 하고 git을 사용하면 위 이미지 왼쪽의 굵은 글씨에 보이는 것처럼 main 브랜치라고 하는

기본 브랜치에서 작업을 하게 되며, 브랜치는 가상의 작업 환경이다.

 

main 브랜치는 사람들과 공유하고 싶은 최종 결과물이 있어야 하는 곳으로 브랜치를 새로 생성하면

기존의 main 브랜치의 내용은 그대로 보존하면서 새로운 작업 환경을 생성할 수 있다.

 

브랜치를 생성하는 방법은

직전 커밋을 선택하고 우클릭 > 브랜치 ->새 브랜치를 선택하고 새로운 브랜치 이름 'version2' 입력

 

 

생성 후에는 version2라는 브랜치가 생기는데, 소스트리의 기능으로 자동으로 현재 브랜치가 version2가 된다.

왼쪽 메뉴를 보면 version2가 생기고 동그라미와 굵은 글씨로 표시되었으며,

오른쪽 커밋 로그를 보면 main보다 한 단계 아래 커밋에 version2가 생긴 것을 볼 수 있다.


● 현재 브랜치 변경하기

깃에서는 한 번에 하나의 브랜치에서만 작업이 가능한데 이를 헤드(HEAD) 브랜치라고 한다.

현재 작업 중인 브랜치 = 헤드 브랜치

 

지금 헤드 브랜치는 방금 전에 생성한 브랜치 version2 다.

브랜치를 변경하기 위해서는 체크아웃(checkout)이란 명령을 사용한다.

 

 

소스트리를 사용하면 정말 쉽게 브랜치 체크아웃을 할 수 있다.

왼쪽 메뉴의 브랜치 이름을 더블 클릭 하거나 커밋 로그의 main과 version2의 파일을 체크아웃 해도 변경 가능하다.


● 새로운 기능 추가하기

기존의 hello.md 파일에 내용 추가.

# 작업후 추가할 내용

## 새로운 브랜치 만들기 

- 원하는 커밋을 만들고 우클릭, 새 브랜치 이름 입력하면 커밋으로부터 브랜치가 생긴다.

## 원하는 브랜치로 돌아가기

- checkout: 왼쪽의 브랜치 메뉴에서 브랜치를 선택하고 더블 클릭하면 해당 브랜치로 돌아간다.

## 브랜치 변경하기
- 브랜치란 : 기존 내용을 유지한체 새로운 내용을 추가하고 싶을 때 사용한다.
- 체크아웃 : 특정 브랜치(혹은 커밋)으로 돌아가고 싶을 때 사용
- 소스트리의 체크아웃 : 브랜치 이름을 더블 클릭하는 것만으로 체크아웃 가능

 

위와 같이 변경한 후에 스테이지에 변경 사항을 올리고 커밋을 하면 새로운 커밋이 하나 생긴다.


 

 

위 이미지처럼  version2 브랜치만 새로 생긴 커밋을 가르키게 되며, main 브랜치는 변하지 않으며

main 브랜치를 가리키는 가지가 하나 생성되었다.


● 다시 체크아웃 해보기

main 브랜치와 version2 브랜치 총 2가지 버전이 생성되었다 .

각각의 체크아웃하면 각 브랜치의 내용으로 폴더안의 파일이 변하며, 두 가지를 비교해 보고 고민 후에 최종적으로 하나를 선택하며, 이후 병합을 선택하게 된다.

+ Recent posts