브랜치: 버전을 여러 개의 흐름으로 관리하는 방법, 버전의 분기
브랜치로 버전의 분기를 관리하는 방법
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 브랜치 내용
'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 |