협업환경 세팅 (Github & Git-Flow)

방충림·2023년 3월 28일
4

Git & GitHub

목록 보기
6/8
post-thumbnail
post-custom-banner

기억력이 아메바이기 때문에 나중에 또 참고할 수 있도록 순서를 남깁니다.

1. Github 협업환경 세팅 (전지적 팀장 시점)

  • 아래 명령어를 실행하기 전에,
    깃허브에 프로젝트 하나를 만들어두고 시작을 합니다.
  • 그다음 아래 내용을 순서대로 실행하세요.
// 팀장님의 로컬에서 프로젝트를 만들고 싶은 위치에 들어가 터미널을 엽니다.

// npm을 경유하여 yarn 설치
λ npm install --global yarn 

// yarn 설치 여부 및 버전확인
λ yarn -v
1.22.19

// react 모듈(?) 만들기
λ yarn create react-app calac

// origin이라는 변수에 깃허브 주소를 저장
git remote add origin https://github.com/HWAHAEBANG/calac.git

// github는 기본 브랜치 이름을 mater 가 아니라 main으로 하라고 강요함
// 그래서 기본 브랜치 이름을 메인으로 바꿔줌
λ git branch -M  main

// 지금까지 한 걸 push 한번 해준다. 단, -u 옵션을 달고.
// -u 옵션은 주소를 기억하라는 뜻으로 한 번 아래 처럼 작성하면 앞으로는 git push만 치면 됨.
// " git push -u 원격저장소주소 올릴로컬브랜치명 "
// 이걸 안하면 Push 할때마다 뒤에 주소 달아야함.																		
λ git push -u origin main

// 내가 메인에 정상적으로 있나 확인한번 해본다.
λ git status
On branch main // 음 잘 있군.

// git-flow 전략 사용할 거니까 main에다가 develop 브랜치를 딴다.
// Upstream (팀장의 Origin)의 브랜치는는 develop만 생성한다. 
// (release, hotfix 브랜치는 추후 배포 과정에서 필요에 따라 생성한다.) 
λ git branch develop
// (git checkout -b 브랜치이름) 쓰면 생성 후 바로 생성한 브랜치로 이동한다고 함. 안해봄.

// develop에 놀러가본다
λ git switch develop
Switched to branch 'develop'

// 여기가 디벨롭이 확실한가
λ git status
On branch develop // 확실하다

// 브랜치 만든 것도 원격레포지토리에 반영해준다
λ git push origin develop
// 그냥 add, coomit, push 하면 반영할게 없다고 뜬다.

// 오케이 여기까지 했으면 팀원들에게 fork하라고 하면 되겠다.

// ?? 근데 나는 어디서 작업하지? 나도 fork 만들 수 있나?

2. Fork와 Local환경 세팅 (팀원 시점)

💡 틈새 개념 정리

git flow 전략은 크게 5개 브랜치를 운영함

  • main 브랜치
  • develop 브랜치 (개발용)
  • feature 브랜치 (develop에 기능추가용)
  • hotfix 브랜치 (main 브랜치 버그해결용)
  • 가끔 release 브랜치 (develop 브랜치를 main 브랜치에 합치기 전에 최종 테스트용) https://codingapple.com/wp-content/uploads/2022/07/%EA%B7%B8%EB%A6%BC6.png

브랜치 작명할 때 여러 단어가 필요하면 보통 대시나 / 기호 씁니다.
ex1) eature/guild 브랜치 만들어서 길드기능 만들고
feature/friend 브랜치 만들어서 친구기능 만들고 하면 됩니다.

레포지토리 구성과 플로우는 이렇게 생김

  • Upstream Remote Repository (이하 Upstream 이라 칭하겠음)
  • Origin Remote Repository (이하 Origin 이라 칭하겠음)
  • Local Repository (이하 Local 이라 칭하겠음)

절차 설명

  1. 각 팀원은 Upstream을 fork (Develop Branch도 꼭 같이 가져오기)하여 각각 개인의 Origin를 생성한다.

  2. 개인의 Origin를 Clone하여 각각 개인의 Local를 만든다

    λ git clone [Origin 주소] 
  3. upstream 변수에 팀장님의 깃 주소를 넣는다.

    λ git remote add upstream [Uptream 주소]
  4. Local에서 작업을 시작한다.

  5. develop branch로 이동한다

    λ git switch develop
  6. develop branch에서 feature branch를 만든다. navbar를 만드는 브랜치를 만들어보겠음

    λ git branch feature/navbar
  7. Feature branch에서 작업을 한다.

  8. 완성되었으면 push를 하기전에 그 사이에 다른 사람이 먼저 push했을 수 있으므로 upstream의 develop브랜치에서 에서 최신 버전을 가져온다.

    λ git pull upstream develop  // 맞겠죠..?
    //문법 참고
    
    λ git pull 원격저장소 주소 // 원격저장소 내용(최신)을 로컬저장소로 가져오기  
    												// (git push 할때 -u 잘 해놨으면 뒤엔 안써도 되고 )
    												// 엄밀히 말하면 git fetch랑 gir merge를 동시에 처리해 주는 것
    λ git pull origin 브랜치명 // - (변수등록 해놨을 때 origin)특정브랜치만 가져오기
  9. Feature를 Origin으로 push한다.

    //문법 참고
    **git push 원격저장소주소 로컬브랜치명** // 특정 로컬저장소 브랜치 -> 원격저장소 ★
    **git push 원격저장소주소 //** 모든 로컬저장소 브랜치 -> 원격저장소
  10. Git hub 홈페이지로 이동하여 팀쟝님에게 Pull Request를 보내어 피드백을 받는다.

profile
최선이 반복되면 최고가 된다.
post-custom-banner

0개의 댓글