[git] branch 조회, 생성, 이동
branch란?
코드를 통째로 복사하고 나서 원래 코드와는 상관 없이 독립적으로 개발을 진행할 수 있게 환경을 조성해주는 것을 branch라고 한다.
branc를 만들어 작업하고 나중에 merge하는 방법이 권장된다.
branch 조회하기
branc를 조회하는 것은 git branch라는 명령어를 통해 간단하게 확인할 수 있다.
별도의 branch를 생성하지 않았기 때문에 현재는 main 1개만 존재한다.
옵션을 통해 로컬 branch 뿐만 아니라 원격 저장소도 확인 할 수 있다.
branch 생성하기
생성은 branch [브랜치명] 으로 간단하게 생성할 수 있다.
git log를 찍어보면 HEAD가 main을 가르키고 있는데 이것은 해당 브랜치에서 마지막 commt의 위치를 말한다.
위 사진 같은 경우 main 브랜치에서 마지막 commit을 했다는 것으로 이해하면 된다.
branch를 생성하면 현재 HEAD에 생성이 되는데 hash값을 입력해주면 다른 지점에 생성이 가능한다.
3rd라는 브랜치를 만들고 f3206a~~~ hash로 생성을 해줘보겠다
보는바와 같이 f3206a~~라는 지점에서 branch가 생성되었다
branch 이동하기
이동 방법은 두 가지가 있다
git checkout <branch명>
git switch <branch명>
branch를 이동한다는 공통점이 있는데 어떤 차이점이 있을까?
switch는 local에 있는 브랜치로만 이동이 가능하며, checkout은 remote에 있는 브랜치로도 이동이 가능하다는 점이다
이렇게 생성한 branch로 이동 후 push를 하게 되면
branch가 생성되면서 pull request도 할 수 있는데 원격 저장소의 담당자가 수락하면 master 브랜치에 내용이 업데이트된다.
branch 삭제
삭제도 명령어를 통해 할 수 있다
github에서는 view all branch을 통해 불필요한 branch를 삭제할 수 있다.
회고
hash값이 작년 수정사항이었는데 이것저것 가지고 놀아본다고 request 받았다가 main 브랜치에 덮었다.
이거 모르고 그냥 로컬에서 pull했으면....상상도 하기 싫다
뭐 덕분에 옛날엔 어떻게 만들었었는지 비교도 할 수 있게되었다....
아직 교육 초반이라 협업할 내용이 없어서 다행이다.
혼자 고민해보고 이것저것 실습을 많이 해봐야겠다
아마....branch 병합?