main브랜치가 디폴트 브랜치라고 했을 때 팀원들은 모두 각각의 브랜치를 파서 개발을 하기 시작한다.
그래서 main에서 브랜치를 만들고 싶으면 아래와 같은 코드를 쓰면 된다.
git branch feature/main (메인 페이지에 관한 코드가 들어가 있을거라고 예상)
브랜치를 만들 때는 컨벤션이 있다. 원격을 origin이라고 하는 것처럼 기능 개발을 할 때는 앞에 feature/를 써준다.
//기능 개발
feature/login
feature/main
//출시 준비
release-1.3
realse-1.4
//긴급 수정
hotfix-1.2.1
그리고 본인이 만든 브랜치를 확인하고 싶다 그럴때는 git branch라고 터미널에 쳐주면 된다.
브랜치를 생성하고 원하는 브랜치로 가고 싶을 때 checkout 명령어를 쓴다
feature/login 브랜치로 가고 싶을때 아래 명령어를 치면 된다.
git checkout feature/login
원격에서 해당 브랜치만 가져오고 싶으면 어떻게 할까?
merge를 하기 전에, 혹은 해당 브랜치가 너무 망가졌을 경우, 다시 작업을 하고 싶을 때 로컬 브랜치를 아예 지우고 원격에 있는 브랜치 코드를 다시 가져와서 쓴다.

위 사진은 main에서 feature/main브랜치를 만들고 원격에 푸쉬만 한 상태이다.
그리고 로컬에 있는 feature/main은 git branch -D feature/main 으로 지워준다. (merge 하기 전이면 소문자 d를 쓰면 된다)
git checkout -b [새_로컬_브랜치_이름] [원격_브랜치_이름]
git checkout -b feature/main-copy origin/feature/main

그럼 원격에 올라간 브랜치를 다 가져오지 않고도 원하는 브랜치만 가져올 수 있다.
pull 은 원격 저장소로부터 변경 사항을 가져와서 현재 로컬 브랜치와 병합하는 작업을 말한다.
보통 프로젝트를 할 때 default 브랜치가 main이라고 하면 main에서 코드를 건드리지 않고 브랜치를 머지하고 main에서 pull를 땡긴다. 여러명이서 코드를 짜는데 main 브랜치를 건드리면 git도 꼬일 수 있고 conflict가 날 수 있기 때문이다.
그래서 pull 은 로컬 main에서만 쓴다
git pull origin main
원격에 있는 main 브랜치를 병합하겠다 라는 뜻이다.(명령어를 쓰는 경로는 main이여야 한다)
그리고 작업을 하던 브랜치가 있다고 하면 해당 브랜치로 가서 git merge main 을 하면 된다. 이 때 conflict가 나면 해결해 주면 된다.
fetch는 원격 저장소에서 최신, 커밋, 브랜치, 태크 등을 로컬 저장소로 가져오지만, 자동으로 현재 작업 중인 브랜치와 병합하지는 않는다.
가져온 데이터를 로컬 브랜치와 자동으로 병합하느냐의 여부