[Git] Git Flow

설정·2020년 12월 23일
0

Git

목록 보기
2/9

Git Flow

UpStream : Origin_Repo
Origin : my_Repo
Local : clone


1. UpStream에서 Origin으로 Fork

2. Origin에서 LocalClone

# clone
git clone [Origin 레포 주소]

3. Local에서 Brach 생성 후 Branch에서 코드 작성

# branch 생성 후 생성된 branch로 이동
git checkout -b [브랜치 이름] // git checkout -b feature1

# branch로 이동
git checkout [브랜치 이름] // git checkout feature1

4. 변경된 branchpush

// add
git add [특정파일] // 변경된 내용 올림

// commit
git commit -m '커밋내용'

// push
git push origin [브랜치 이름] // git push origin feature1

5. push를 통해 변경된 branchUpStreamPR

  • 이 과정을 진행하면, UpStream에는 각 팀원들의 작성된 코드가 올라간다.
  • Merge를 진행하기 전, 코드리뷰를 통해 작성된 코드 중 수정해야 하는 부분이나 추가해야 하는 부분에 대한 것을 팀원들과 교류한다.

    [❗Merge란? ]

    다른 브랜치들을 현재 Checkout된 브랜치에 Merge하는 것으로, 브랜치들을 병합하는 것

6. MergeUpStreamPull하여 추가 코드 작성

  • 1차 BranchPushPR, Merge까지 한 코드를 Pull하여 추가 기능 코드를 작성한다.
  • 현재 UpStream에 있는 devLocaldev에 반영
    [git add remote add upstream ~git pull upstream ~ 사용]
// 현재 git 위치 명시
git remote add upstream [upstream 레포주소] // 내가 pull할 upstream 레포주소

// pull
git pull upstream dev

[잠깐!] 페어와 'remote'를 해야한다면?

// * 레파지토리 연결하기 git remote add [레포주소]
$ git remote add pair [페어 레포주소] // 페어와 remote (공통)
$ git remote -v // 현재 remote되어있는 상황 확인하기 (공통)

// 페어 A
$ git add [change file] // 변경된 파일 add (페어 A)
$ git commit -m 'change message' // 커밋내용 (페어 A)
$ git push origin master(or other branch name) // (페어 A)

// 페어 B
$ git pull pair master(or other branch name) // 페어 A가 올린 코드를 가져온다 (페어 B)
$ git add // 변경된 파일 add(페어 B)
$ git commit -m 'change message' // 커밋내용(페어 B)
$ git push origin master(or other branch name) // (페어 B)

7. 기능 추가 위해 새로운 branch를 생성한 후 생성된 branch에 코드 작성

❗주의할 점

  • 현재 나의 작업 위치 확인(feature1인지 dev인지)
  • 현재 위치가 dev가 아닐 시 git checkout을 이용하여 dev로 작업 위치 변경

현재 pull해 온 곳은 feature1 브랜치이다.(push를 할 때 feature1push)
그렇기 때문에 git checkout dev로 이동을 한 후 dev에서 새로운 branch를 작성해야 한다.
즉, 현재 내가 pull해 온 위치가 어디인지 확인 후 dev 위치가 아니라면 dev로 이동 후 branch를 작성한다.

  # branch를 생성해야 하는 dev로 이동
  git checkout dev // UpStream에 master와 dev 브랜치 중 dev브랜치에서 작업하기 위해 dev 브랜치로 이동
  
  # 2번째 branch 생성
  git checkout -b [브랜치 2] // git checkout -b feature2

8. 해당 프로젝트가 끝날 때 까지1~7번까지 반복작업


🧐 [참고] UpStream의 'master' 브랜치와 'dev' 브랜치

  • 여기서 사용되는 dev브랜치는 해당 프로젝트를 진행을 위해 UpStream레파지토리에서 팀장이 생성한 branch이다.
  • 팀원UpStream의 레파지토리를 Fork할 시 master 브랜치와 dev 브랜치 모두 가져와진다.

0개의 댓글