낙서장이자 오답 노트이자 컨닝 페이퍼
Git을 공부해보자: Git으로 차원 넘나들기 본문
인프런에서 "제대로 파는 Git & GitHub - by 얄코"를 보고 정리한 내용입니다!
Branch란?
여러 작업들을 하나의 프로젝트 폴더에서 진행할 수 있도록 해준다.
- 프로젝트를 하나 이상의 모습으로 관리할 수 있음
- 예) 실배포용, 테스트 서버용, 새로운 시도용
- 여러 작업들을 각각 독립적으로 진행할 수 있음
- 예) 신기능 1, 신기능 2, 코드개선, 긴급 수정
- 각각의 차원에서 작업한 뒤 확정된 것을 메인 차원에 통합
브랜치 생성/이동/삭제하기
브랜치 생성
git branch (새 브랜치명)
브랜치 목록 확인
git branch
브랜치 이동
git switch (브랜치명)
브랜치 생성과 동시에 이동하기
git switch -c (새 브랜치명)
브랜치 삭제하기
git branch -d (삭제할 브랜치명)
브랜치 강제 삭제
지워질 브랜치에만 있는 내용의 커밋이 있을 경우, 즉 다른 브랜치로 가져오지 않은 내용이 있는 브랜치를 지울 때는 -d대신 -D로 강제 삭제해야 한다.
git branch -D (강제삭제할 브랜치명)
브랜치 이름 바꾸기
git branch -m (기존 브랜치명) (새 브랜치명)
서로 다른 작업하기
add-coach 브랜치와 new-teams 브랜치를 추가하고 각각의 브랜치에서 다른 작업을 진행했다. 그 결과 브랜치 별 파일의 내용이 달라졌고 각각의 브랜치가 서로 뻗어 나온 것을 볼 수 있다.

💡참고사항
git log는 위치한 브랜치에서의 내역만 볼 수 있다. 아래 명령어를 입력하면 여러 브랜치의 내역을 볼 수 있다.
git log --all --decorate --oneline --graph
branch를 합치는 두 가지 방법
- merge: 두 브랜치를 한 커밋에 이어 붙인다.
- 브랜치 사용 내역을 남길 필요가 있을 때 적합한 방식이다.
- rebase: 브랜치를 다른 브랜치에 옮겨 이어 붙인다.
- 한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합하다.
- 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋다.


branch 합치기
merge로 합치기
add-coach 브랜치를 main 브랜치로 merge
1. main 브랜치로 이동
2. 아래의 명령어로 병합
git merge add-coach
3. 병합된 브랜치 삭제

💡 참고사항
merge도 하나의 커밋이기 때문에 reset으로 되돌리기 가능하다. merge 하기 전 해당 브랜치의 마지막 시점으로 reset 하면 된다.
rebase로 합치기
new-teams 브랜치를 main 브랜치로 rebase
1. new-teams 브랜치로 이동(merge와 반대)
2. 아래의 명령어로 병합
git rebase main

병합 후 트리를 확인하면 main 브랜치가 뒤처져 있는 상황이다.
3. main 브랜치로 이동 후 아래 명령어로 new-teams의 시점으로 fast-forward 한다.
git merge new-teams
4. new-teams 브랜치 삭제

충돌 해결하기
conflict-1, conflict-2 브랜치 생성 후, 충돌 상황이 발생했다.
merge 충돌 해결하기
git merge conflict-1로 병합을 시도하면 충돌 발생
1. 오류 메시지, git status,VS Code에서 충돌 부분 확인


2. 충돌 부분 수정한 뒤 git add, git commit으로 병합 완료

당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단
git merge --abort
rebase 충돌 해결하기
한 번에 충돌이 해결되는 merge와 달리 rebase는 브랜치 안에 있는 모든 커밋마다 충돌 과정을 차례로 해결해 줘야 된다.
conflict-2에서 git rebase main로 리베이스 시도하면 충돌 발생
1. 오류 메시지, git status,VS Code에서 충돌 부분 확인
2. 충돌 부분 수정한 뒤 git add
3. 아래 명령어로 계속(브랜치 안에 있는 모든 커밋마다 충돌 과정을 해결해야 하기 때문)
git rebase --continue
4. 충돌이 모두 해결될 때까지 2번 하고 3번 반복
5. 브랜치 삭제

당장 충돌 해결이 어려울 경우 아래 명령어로 rebase 중단
git rebase --abort
'git & github' 카테고리의 다른 글
| Git을 공부해보자: Git의 3가지 공간 & add, commit 취소하기 (0) | 2023.11.16 |
|---|---|
| Git을 공부해보자: GitHub 사용하기 (0) | 2023.11.15 |
| Git을 공부해보자: Git으로 시간 여행하기 (0) | 2023.11.14 |
| Git을 공부해보자: Git 시작하기 (0) | 2023.11.14 |
| 커밋 메세지 어떻게 써야할까? (0) | 2023.07.28 |