이전 포스트에서는 Git과 GitHub을 사용하는 방법을 간단하게 설명했습니다.

 

이번 포스트에서는 Git을 이용하여 버전 관리 또는 다른 개발자들과 협력하는 방법에 대해서 설명하겠습니다.


# 목차

  • Git을 이용한 협업 워크 플로우

  • Branch를 이용한 협업 방법
    1) master 를 개발용 develop 브랜치에 복제
    2) develop 브랜치를 베이스로 feature 브랜치 생성
    3) 담당 업무 수행 및 수정 내용 commit
    4) Pull Request 송신
    5) 승인 후 병합(Merge)


# Git을 이용한 협업 워크플로우

Master : 배포 이력을 관리하기 위한 브랜치(태그로 관리)

Hotfix : 제품을 배포한 후 발견된 버그 등을 수정하기 위해 임시로 사용하는 브랜치

Release : 제품을 배포하기 위해 준비를 하는데에 사용하는 브랜치

Develop : 개발이 완성된 기능(Feature)들을 병합하기 위한 브랜치

Feature : 기능을 개발하기 위해 사용하는 브랜치(개발자가 각자 작업을 하는데에 사용)


Branch를 이용한 협업 방법

 

1) master 를 개발용 develop 브랜치에 복제

먼저, master를 복제할 develop용 로컬 저장소를 생성합니다.

 

  mkdir develop    // develop 디렉토리 작성

  cd develop         // develop 디렉토리에 이동

  git init               // 디렉토리를 Git저장소로 변환

 

그 후, Master를 Develop 저장소에 복제(Clone)합니다.

 

  git clone [공유 Master Repository URL]

 

ex) 본 포스트에서는 이전 포스트에서 만들었던 Repository를 마스터로 하겠습니다.

 

  git clone github.com/[유저명]/Test001.git

 

마지막으로, develop 브랜치를 생성하고 저장소에 push해줍니다.

 

  git branch develop                     // develope 브랜치 생성

  git push -u origin develop       // develope 브랜치를 저장소에 push

 

2) develop 브랜치를 베이스로 feature브랜치를 생성

각자 개발자가 본인의 업무를 위해 feature브랜치를 생성합니다. 이 때, master가 아닌 develop 브랜치를 기준으로 브랜치를 따야 합니다.

  

  git branch feature_branch develop    // develop 브랜치를 베이스로 feature_branch를 생성

  git branch                                                // 생성된 브랜치 리스트를 확인

 

결과 화면)

 

3) 담당 업무 수행 및 수정 내용 commit 및 push

작업 할 feature_branch 로 이동한 후, 개발 작업을 수행합니다. 

개발 작업이 끝나면 변경된 내용을 commit 및 push합니다.

 

본 포스트에서는 이전 포스트에서 작성했던 "test.html"파일을 수정하겠습니다.

 

먼저, feature_branch로 이동한 후, 파일을 아래와 같이 수정해줍니다.

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
  </head>
  <body>
<!-- <h1></h1>태그 추가_start -->
    <h1>Hello?</h1>  
<!-- <h1></h1>태그 추가_end -->
  </body>
</html>

수정이 완료되었다면, 아래의 코드로 수정된 파일을 commit 및 원격 저장소에 push 해줍니다.

 

  git add test.html

  git commit -m "add tag <h1>"

  git push git push --set-upstream origin feature_branch

 

4) Pull Request 송신

수정한 파일이 원격저장소에 성공적으로 push 되었다면, GitHub에서 해당 Repository를 확인합니다.

Repository의 내부를 보면, 노란색 블록으로 feature_branch가 push 되었다고 알려줍니다.

사진과 같은 노란색 블록이 표시되었다면, 오른쪽에 "Compare & pull request" 버튼을 눌러 "Open a pull request"화면을 표시합니다.

 

[1]: develop로 변경해줍니다.

[2]: 변경된 내용을 기입합니다.

[3]: 톱니바퀴 버튼을 눌러, 리뷰를 받을 상대를 선택합니다.

[4]: 톱니바퀴 버튼을 눌러, 본인을 선택합니다.

 ※ 필요에 의해 다른 항목도 추가 입력 해줍니다.

 

입력이 끝났다면, "Create pull request"버튼을 눌러 Pull Request를 요청해줍니다.

 ※ 상황에 따라, "Create pull request"가 아닌, 화살표 버튼을 눌러 "Create draft pull request"를 우선적으로 사용하는 경우가 있습니다. 

이 부분은 사람에 따라, 회사에 따라 사용법이 바뀔 수 있습니다.

 

5) 승인 후 병합(Merge)

상대방으로부터 Pull Request의 승인을 받았다면, feature_branch 브랜치에서 수정한 내용을 develop 브랜치에 병합합니다.

위 화면에서, "Merge pull request"버튼을 눌러줍니다.

이 후에 표시되면 위 화면에서 "Confirm merge"버튼을 눌러 develop브랜치에 병합합니다.

 

병합이 완료되면, "Delete branch"버튼을 눌러 필요가 없어진 feature_merge를 삭제해줍니다.

경우에 따라, 수정 이력을 남기기위해 feature브랜치를 삭제하지 않고 남기는 경우도 있습니다.


이상으로, Git과 GitHub을 이용한 버전 관리 및 협업 방법에 대해 간단히 알아보았습니다.

 

master와 develop를 나누어 사용하는 방법이나 pull request를 사용하는 방법 등, Git 과 GitHub를 이용하여 협업을 하는 방법은 같이 일하는 개발자, 또는 회사의 업무 방법에 따라 전부 달라지기 마련입니다.

 

그 때 그 때 상황에 맞춰 능동적으로 Git · GitHub을 사용할 수 있도록 더 공부를 할 필요가 있을 것 같습니다.

 

p.s) 코로나 때문에 원격으로 GitHub에 대한 지식을 알려준 Hamill 님에게 심심한 감사 인사 남기겠습니다.

(블로그에 박-제)

 

도움1) https://velog.io/@kameals - Hamill

참고1) https://blog.appkr.dev/learn-n-think/comparing-workflows/ - Git을 이용한 협업 워크플로우 배우기

참고2) https://mrw0119.tistory.com/120 - [GitHub] 튜토리얼 - 깃허브 사용법

+ Recent posts