[git] 브랜치 따기
branch 관련 명령어들
우선 브랜치와 관련 된 명령어들은 다음과 같다.
$ git branch # 현재 내 저장소에 어떤 브랜치들이 있는지, 어떤 브랜치 안에 있는지 보여준다.
$ git checkout 브랜치명 # 작성한 브랜치명의 브랜치로 이동한다.
$ git checkout -b 브랜치명 # 브랜치를 새로 생성하고, 생성한 브랜치로 이동한다.
예시
- 우선
master
에서 두 개의 파일을 만들어 github에 push 한다.
git checkout -b testBranch
명령어를 통해 브랜치를 생성 및 이동하고, 파일을 수정한다.git status
명령을 통해 testBranch 브랜치에서 파일들이 수정되었음을 확인할 수 있다.
- testBranch에서 commit을 한 후, push는
git push origin testBranch
로 해준다. (origin 뒤에 해당 브랜치 명을 작성해준다.)
- push를 한 후 해당 레포에 들어가보면, 브랜치가 생성되었다는 알림이 보인다. 오른쪽의 Compare & Pull Request를 누른다.
- 원하는 메세지를 작성해 create pull request 버튼을 누른다.
-
버튼을 누른 후엔 다음과 같은 화면으로 이동하게 되고, (이 예시에는 participant가 나뿐이지만) 코드리뷰 등 참여자들 사이의 의논 후에 merge 해도 되는 상태가 된다면 하단의 초록 버튼을 누른다. (우리 회사의 경우 squash and merge 버튼을 누르게 한다.)
이 PR 과정에서 merge가 되기 위해 지속적으로 코드를 수정하기 위해선 그냥 계속 해당 브랜치에서 커밋을 하고push origin 해당브랜치명
을 하면 된다.squash란?
merge --squash
해당 브랜치의 모든 커밋을 하나의 커밋으로 병합하여master
브랜치로 가져오는 것이다. 지속해서 수정 커밋을 거친 후 쌓인 수 많은 커밋들이 마스터 브랜치에까지 닿는다면 커밋 트래킹이 어려울 수 있어 회사에서는squash를 권장하는 것이 아닌가 싶다. -
작업을 완료한 후의 브랜치는 지워주고, (저 화면 다음 화면에 delete branch 버튼이 나올텐데 그려면 지워주면 된다.) 내 로컬에서도 완료된 브랜치는 지워준다. 그 후 작업 내역을 원격저장소에서 pull 해와서
up-to-date
해준다.
###참고 URL
merge –squash
(책)만들면서 배우는 Git+GitHub 입문