[TIL-GIT] 2주차 Part3. 깃허브로 협업하기(2)

반 히·2024년 3월 7일

데브코스

목록 보기
5/58
post-thumbnail

📁 CH07. 깃 브랜치 실습

📌 브랜치란? (branch)

  • 나뭇가지 ...
  • 여러 가지의 기능을 병렬로 만들고 싶을 때...
  • 프로젝트가 있으면 언젠간 다시 합쳐질 거라서 가상으로 복사를 한 후 작업을 하고, 다시 중간에 있는 메인 줄기에 붙여넣는다.

📌 브랜치 실습

  • git status
  • git branch : branch 목록 확인하는 명령어; 현재 이 tree에(내가 작업하고 있는 이 프로젝트 공간에) 혹시 다른 branch들이 더 있나? 확인해보는 명령어
  • * main : * 는 내가 이 브랜치에 있다는 뜻.
  • git branch 브랜치명 : branch 만드는 명령어
  • git checkout 브랜치명 : 지금 있는 branch에서 checkout을 통해 다른 곳으로 건너갈 거야.

📌 깃 브랜치 이름 규칙

  • "메인 브랜치" v1.2.0
    • 기능 개발 : feature/login, feature/select-product
    • 출시 준비 : release-1.3, release-1.4
    • 긴급 수정 : hotfix-1.2.1
  • git branch -d 브랜치명 : 브랜치 삭제

📌 커밋해야 그때부터 브랜치!

  • 브랜치를 브랜치답게 사용하는 것은 "커밋"부터
  • 내가 지금 어느 브랜치에 있는지 보고 커밋쳐야 함
  • 브랜치 확인 잘 해야 함!!

📁 CH08. 깃허브 브랜치 실습

📌 원격 브랜치 실습

  • git branch -r : 로컬에서 깃허브의 브랜치 목록을 볼 수 있음.

📌 깃허브에 브랜치 생성하고 깃 브랜치 복제하기

  • 깃에 만들어 둔 브랜치를 원격 브랜치로 복제
  • git push 깃허브저장소별칭 깃브랜치명
    • 반대로, 깃허브에 브랜치를 먼저 생성하고 깃으로 받아오려면 깃브랜치명과 깃허브 브랜치명을 바꿔서 작성하면 됨.

📁 CH09. 깃 브랜치 전략

📌 깃 브랜치 전략이란?

  • 깃 플로우라고도 부름
    • 여러 개발자들이 어떻게 워크 플로우를 짜느냐.
  • 전략은 다양하게 짤 수 있음
  • 전략은 크게 두 가지로 분류됨.
    • fast forward
    • 3-way

📌 fast-forward 전략

  • A branch에서 B branch를 생성한 시점부터,
    • A branch에는 아무런 추가 구현을 하지 않고
    • B branch만 추가 구현한 뒤
  • B branch와 A branch를 합치면 👉🏻 A branch에 그냥 B branch가 붙으면 끝남

📌 3-way 전략 + fast-forward

  • 일반적으로 가장 많이 사용하는 전략
  • A branch에서 B branch를 생성한 시점부터,
    • A branch도 추가 구현을 하고
    • B branch도 추가 구현을 하고
  • B branch와 A branch를 합치면 👉🏻 A branch와 B branch가 서로 비교하여 바뀐 것을 정리하여 합치는 전략

📁 CH10. 병합과 충돌

📌 pull request & merge

  • 병합을 하다보면 즉, 브랜치들끼리 합치다보면 즉, 메인 브랜치에 다른 브랜치들을 합치다보면(=병합) 충돌이 발생할 수 있다.
  • branch를 병합할 때 pull request를 사용함. 따라서 우리가 브랜치에 무엇을 구현했는지 적으면 좋음. 반드시 message 작성하기 (markdown 지원되므로 이를 잘 활용해서...)
  • 보통 branch는 사용이 다 끝나면 merge를 시킴. 그리고 남아있는 나뭇가지는 날려주는 게 좋음. 따라서 merge 후에는 branch를 delete하기.

📌 병합이란?

  • 병합이란,
    • branch를 생성한다는 건, "협업"을 위한 것
    • 그래서 우리는 주로 branch 병합 (추가 가지 → base 가지)을 "깃허브"에서 함

    • main branch 보호
    • 추가 branch → main branch 병합 시켜줘! = Pull Request
    • 충돌 일어나나? 자동으로 확인을 해줌! (깃허브가)
      • * PR 메세지* 신경쓰기
    • merge
      • * merge commit * (merge가 일어날 때도 commit이 일어남)
    • branch 삭제

📌 merge 된 깃허브 → 깃에 동기화

  • git petch -p : 깃허브 브랜치 목록 동기화 → (깃 브랜치 삭제 시도) git checkout main(다른 곳으로 빠져나가기)git pull origin main (동기화)git branch -d feature/login
    • 위 사진들은 깃허브에서 merge하고 로컬에서 동기화하는 작업들...
    • pull 하기 전에는 git log에 merge commit이 안 찍힘
    • 동기화하고 branch 삭제할 수 있음. 그 전에는 안 지워짐.

📌 충돌 해결하기

  • git checkout -t 브랜치명
    • 특정 원격 브랜치를 로컬로 추적하는데 사용됨. 이 명령어를 사용하면 로컬에서 해당 원격 브랜치의 변경 사항을 추적하면서 새로운 로컬 브랜치를 생성함.

0개의 댓글