HS_development_log

Git의 이해 및 사용 3 - 브랜치란 무엇인가? 본문

Git

Git의 이해 및 사용 3 - 브랜치란 무엇인가?

DevHyeonseong 2020. 1. 15. 14:50
반응형

브랜치란 무엇인가

 

Git이 브랜치를 다루는 과정을 이해하기 위해서는 Git의 데이터 저장방법에 대해 알아야 한다

 

· Git은 커밋하면 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 이전 커밋에 대한 포인터, 메시지 같은 커밋 개체를 저장함

· 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지 알 수 있다

· 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를 합친 Merge 커밋은 이전커밋포인터가 여러개있다

 

· 커밋하면 먼저 루트 디렉터리와 하위 디렉터리의 트리 개체를 체크섬과 함께 저장소에 저장

· 커밋개체를 만들고 메타데이터와 루트 디렉토리 트리 개체를 가리키는 포인터 정보를 커밋 개체에 넣어 저장

· 따라서 필요하면 언제든지 스냅샷을 다시 만들 수 있음

 

· Git의 브랜치는 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것


브랜치 생성하기

 

· git branch "" 명령어를 사용하면 브랜치를 만들수있음

· 하지만 Git은 아직 master브랜치를 가리키고있다. git branch 명령은 브랜치를 만들기만하고 브랜치를 옮기지는 않는다.

· git log --decorate 명령어를 사용하면 브랜치가 어떤 커밋을 가리키는지 확인 가능

 

HEAD ->master 즉, master 브랜치를 가리키고 있다는 것을 쉽게 확인할 수 있다.

 

· git checkout "" 명령어를 사용하면 다른 브랜치로 이동가능 하다.

HEAD -> testing, 가리키고 있는 브랜치가 바뀌었다

브랜치는 포인터와 비슷한 개념. commit을 가리키고 있는 것


브랜치 연습 하기

master 브랜치에서 작업하고 commit 실행
로그를 확인해보니 master브랜치에서 커밋이되었다고 나온다
checkout을 통해 testing브랜치로 바꾸고 커밋
로그를 확인해보니 testing 브랜치에서 커밋되었다고 나온다.

 

 

· Git의 브랜치는 어떤 한 커밋을 가리키는 40글자의 SHA-1 체크섬 파일에 불과해서 만들고 지우기가 쉽다

· Git은 프로젝트를 통째로 복사하는작업이 순식간이다. Branch의 능력때문

· 게다가 커밋을 할 때마다 이전 커밋의 정보를 저장하기 때문에 Merge를 할때 편리하다.

· 이런 이유들이 개발자들이 수시로 브랜치를 만들어 사용하는 이유

 

 

 

 

 

 

참고사이트 

1. https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

반응형

'Git' 카테고리의 다른 글

Git의 이해 및 사용 2 - Git 기초  (0) 2020.01.14
Git의 이해 및 사용 1 - 버전관리 및 Git의 목표  (0) 2020.01.14