항해
항해 1주차 GIT - 원격 repo & Branch 정리 (1)
완두노예
2023. 1. 16. 04:11
- 원격 repo의 Branch - 개념탑재
- 앞전에 원격 repo 는 로컬 repo 가 연결되어있다고 했는데 사실 이 연결은 로컬 repo 의 브랜치와 원격 repo 의 브랜치가 연결된 것과 같다.
- 따로 설정을 해주지 않으면 기본적으로 로컬 repo의 브랜치명와 같게 원격 repo의 브랜치명이 생성되어 tracking됨.
- commit history 에 보여지는 origin/main 이름표는 원격 repo 의 main 브랜치 라는 뜻. 원격 repo 를 연결할 때 origin 이라고 적어주었기 때문에 앞에 origin 이 붙는다.
- 연결의 개념을 다시 나타내면 아래와 같다.
- pull 과 push 는 결국 특정 branch(tracking branch) 에 있는 commit 을 여기와 연결되어있는 branch에 가져오는 것.
- 원격 repo 브랜치와 로컬 repo 브랜치 연결 확인을 해보자
상단 히스토리를 보면 파란색 'main' 이름표 붙어있는 commit과 'origin/main' 이라고 이름표 붙어있는 commit이 다르다는 것을 보여준다.
원격 repo의 main 브랜치의 최신 commit은 '김치찌개 요리법 업데이트' 이고, 로컬 repo의 main 브랜치의 최신 commit은 merge branch 'feature/jjigae_rtan into main' 이다.
원격 repo의 main 브랜치에 로컬 branch main 브랜치의 commit을 반영하기 위해 상단 push를 눌러보자.
원격 remote(orgin) 에 push 할 브랜치를 선택하도록 되어있다. 로컬 브랜치 main 의 commit들을 원격 repo의 브랜치(원격 브랜치) 에 push 한다는 의미다. push를 눌러보자.
파란색 이름표 main 브랜치와 원격 repo의 main 브랜치(origin/main) 모두 같은 commit에 위치한다. 즉 두 브랜치의 최신 commit 내역이 동일하게 바뀌었다.
지금 해준 작업을 그림으로 나타내면 아래와 같다.
- 지금까지는 작업을 로컬 repo 브랜치만을 사용해서 작업을 완료하고 merge 했다. 하지만 기능을 만드는 건 시간이 오래 걸릴 수 있다. 실제 프로젝트에서는 로컬 repo의 작업 branch의 작업내역(commit들)을 원격 repo branch에 push해 저장해두면서 작업하는 경우도 있다.
1단계. 누가 이 작업 할 것인지 정한다. - Issue
2단계. 각자 맡은 것을 작업한다. - Branch
3단계. 각자 작업을 프로젝트에 합친다. - merge
👉 (경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge