💡 브랜치 branch 사용을 위한 기초 내용을 정리
👉 개발을 하다보면 코드를 여러 개로 복사할 일이 생긴다. 코드를 통째로 복사하고 원래 코드와 별개로 독립적으로 개발하는 것이 브랜치다.
👉 기존에 저장한 파일을 master 브랜치에 유지하면서 독립적으로 기존 파일 내용을 수정하거나 새로운 파일을 추가하고 스테이징, 커밋할 수 있다.
👉 HEAD는 현재 브랜치를 가리키는 포인터고, 브랜치는 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다.
HEAD : 지금 작업 중인, 현재 브랜치를 가리키는 포인터.
git branch
: 현재 저장소의 브랜치 확인.
git branch [branchName]
: 'branchName'이란 새 브랜치를 만든다.
git checkout [branchName]
: 'branchName' 브랜치로 이동. HEAD가 'branchName' 브랜치를 가리키게 된다.
git checkout -b [branchName]
: 'branchName' 브랜치를 생성하고 이동. git branch
+ checkout
과 같다고 볼 수 있음.
git log
: commit log를 확인하는 git log 명령을 사용할 때, 다음과 같은 옵션을 함께 사용할 수 있다.
--oneline
: 각 커밋을 한 줄로 간략히 띄움. --braches
: 각 브랜치의 커밋을 함께 볼 수 있음.--graph
: 브랜치와 커밋의 관계를 그래프 형태로 표시함.[leftBranch]..[rightBranch]
: 브랜치 이름 사이에 마침표 두 개(..)를 넣어 'leftBranch'에는 없고 'rightBranch'에만 있는 커밋을 확인할 수 있음.git merge [branchName]
: 현재 브랜치로 'branchName' 브랜치를 가져와 병합.
git branch -d [branchName]
: 'branchName' 브랜치 삭제.
merge
명령 후 Conflict 발생 시, git status
명령으로 어떤 파일이 Unmerged
인지 확인하고, 해당 파일을 연다.<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53:index.html
======
으로 충돌한 내용이 구분된다. 위쪽의 내용은 merge 명령을 실행할 때 작업하던 main branch, HEAD 버전의 내용이고, 아래는 합쳐진, merged 브랜치의 내용.git add
후 merge
한다.