본문 바로가기

Backend/Git

[패캠/Git] 브랜치 관리하기

728x90

 

브랜치: 버전을 여러 개의 흐름으로 관리하는 방법, 버전의 분기

브랜치로 버전의 분기를 관리하는 방법

1. 브랜치를 나눈다.

2. 각자의 브랜치에서 작업한다

3. 브랜치를 합친다(필요시에)

 

 

HEAD: 내 레포가 현재 가리키고 있는곳

master 브랜치 = 가장 기본적인, 최초의 브랜치(설정에 따라 main으로 생기는 경우도 있다)

 

특정 브랜치에서 작업할때

브랜치 다룰때 사용하는 명령어들

공식문서는 아래와 같이 명령어들의 역할을 말해 놓았다. (git 2.23.0부터 switch와 restore이라는 명령어가 새로나왔다고 한다)

  • checkout: Switch branches or restore working tree files
  • switch: Switch branches
  • restore: Restore working tree files

checkout: HEAD를 이동시키는 명령어switch: 기존의 checkout 명령어에서 브랜치를 변경하는 부분만 담당restore: 워킹 트리의 파일을 복원해 주는 역할

 

다시말하자면 

브랜치(작업환경)를 완전히 비워야 할 때 restore 혹은 checkout
브랜치를 바꾸어야 할 때에는 checkout 혹은 switch
다만 로컬 브랜치만으로 바꿀 때에는 switch
원격 브랜치 (origin/)로 바꿀 때에는 checkout 을 사용

이렇다고 한다

 

*git branch <새 브랜치> 와 git checkout -b <새 브랜치>의 차이점: branch를 사용하여 새 브랜치를 만들면 브랜치만 새로 만들어지지만 checkout 명령어를 쓴다면 브랜치가 새로 만들어지고 해당 브랜치로 checkout 까지 된다.

 

실습:

1. 마스터 브랜치에서 a.txt 생성 후 커밋
2. foo 브랜치 생성 및 체크아웃
3. foo 브랜치에서 foo_a.txt 생성 후 커밋
4. git checkout & git log

 

 

브랜치 병합하기

fast-forward merge: 변함이 없던 브랜치가 빨리감기하듯 브랜치 내용이 업데이트 되는 병합 기법

완전 merge: merge 커밋이라는 새로운 커밋을 생성

 

충돌 해결하기

같은 부분을 다르게 수정할 경우에 충돌 발생1. 어떤 브랜치의 내용을 반영할지 직접 선별2. 다시 커밋

 

예시)

노란색: 현재 브랜치 내용

연두색: foo 브랜치 내용 

728x90

'Backend > Git' 카테고리의 다른 글

[패캠/Github] Github 기초  (0) 2023.07.13
[패캠 / Git] Git / Github  (0) 2023.07.11
[패캠 / Git] Git CLI  (0) 2023.07.11
[패캠 / Git] Git 전략  (0) 2023.07.11