git 브랜치

야 나 개 ·2022년 1월 4일
0

어떤 개발을 할땐 협업이 중요하다
혼자 다 하면 좋겠지만... 너무 오래걸리고 힘들기 때문에

하지만, 여러명이서 같이 하게되면 의견충돌..코드충돌..
그래서 중간에 가지를 뻗어서 다른방향으로 해보고 좋으면 합치고 아니다 싶으면 지우고 ^^

그래서

git branch 라는것이 있다.

통합 브랜치 (Integration Branch)

중심 실제로 배포될 브랜치

피처 브랜치 (Feature Branch)

기능 추가 혹은 버그 수정 같은 작업 브랜치

이제 개발 프로젝트의 큰 그림을 그려보면

명령어를 무작정 아는거 보다
프로젝트 하는 가정으로 알려드림

프로젝트 플로우

예시 웹개발 프로젝트

1.복제하기

Fork / clone
프로젝트 대장이 이제 개발 시작하는 레포지토리를 만들었다.
그리고 팀원들은 그걸 포크 하고, 클론해서 로컬환경으로 복제해옴

2. 브랜치 만들기

git checkout -b 새로운 브랜치 이름
git switch -c 새로운 브랜치 이름
둘다 같은 명령어임

main 프로젝트와 별개로 브랜치는 dev 이라고 만들어서 진행한다. (devlopement 인듯 뇌피셜..)

**git checkout -b dev

3. 브랜치 반영하기 (제일중요)

git push origin 새로운 브랜치 이름
을 해줘야 그 프로젝트에 반영됨 (안하면...이게 뭔 가지인지 모름)

4. 브랜치 확인하기

git branch

대장이 어떤 브랜치를 만들어서 뒤에서 만드나 확인함
아니면 내가 브랜치를 잘 만들었는지 확인하기 위해 사용

5. 또 브랜치 이어가기

로그인 기능을 만들어 보기 위해
feature/login 브랜치를 만듬

git checkout -b feature/login
git switch -c feature/login

6. 또또 브랜치 이어가기 (선택사항)

다른 소셜로그인 기능 만들어 볼려고 하나더 만들어봄

git checkout -b feature/login-oauth
git switch -c feature/login-oauth

7. 브랜치 합치기

1) 먼저 합칠 상위 디렉토리로 가야함

이동 명령어

git checkout 이동할 브랜치 이름
git switch 이동할 브랜치 이름

2) 이제 병합할 브랜치 지정 해야함
git merge 병합할 브랜치 이름

그러니까 소셜로그인 기능을 로그인기능에 합치고 싶을때

git checkout feature/login
git merge feature/login-oauth

8. merge vs rebase

merge를 하게되면 변경 내용의 이력이 모두 그대로 남아 있고, 이력이 복잡해짐

rebase는
머지처럼 통합을 하지만 무식하게 전부 옮기는게 아니고,
특정 시점으로 브랜치가 가리키는 곳을 변경됨

git rebase main feature/login-oauth

입력하게되면 메인의 가능 최신 커밋된 브랜치가 가리키는곳이 변경됨

9. 업로드 하기

이제 로컬에서 작업한것을 올려줘야 다른 팀원들이 확인할테니

git push origin 브랜치 이름

10. 브랜치를 메인에 적용하기

푸쉬한 작업물을 다른 팀원들에게 알린다.
git hub에
compare & pull request 를 클릭하고

어떤 작업을 했는지 적고난뒤

Create pull request 클릭함

주의사항

메인 작업이 업데이트 사항이 있으면 로컬환경에 pull을 해와서 업데이트를 해줘야함 !!

특별부록

1)브랜치 목록과 각 브랜치의 최근 커밋 확인

git branch -v

2)브랜치 삭제

git branch -d 삭제할 브랜치 이름
git branch -D
해당 명령어는 병합하지 않은 브랜치를 강제 삭제하는 방법

3)로그에 모든 브랜치를 그래프로 표현

git log --branches --graph --decorate

4)아직 commit 하지 않은 작업을 스택에 임시로 저장

git stash

이후 불러오기를 찾아야함

5) git cherry-pick 커밋해쉬값

특정 커밋까지를 받아올 수 있다.

그 코딩 내용만 쏙 가져온다~~ 오예~~

참고링크
git 명령어

git 명령어 게임

알고 있음 git 이름짓기 꿀팁

master / main

dev 베타 버젼 / 모든 개발 로그들이 쌓이는곳

feature 기능을 추가할때 마다 따는 브랜치

test 시험

hotfix 급한수정

release 배포할때 테스트용 브렌치

그럼 이만
즐거운 프로젝트 하세요 ~~

profile
야 나도 개발자 될 수 있어

0개의 댓글