Development/Git

Git :: 설치부터 기본 사용법까지 (3) - git 으로 협업(팀프로젝트)하기

고고마코드 2021. 12. 14. 21:22
반응형

환경 : Window 11 64비트, github 사용
git push 까지는 알았다고 가정하고 병합하는 과정에 대한 내용

만약 기초부터 알아야 한다면 아래 링크에서 확인할 수 있다.

git 설치가 필요하다면 Git 설치부터 기본 사용법까지 (1) - git 설치에서 확인할 수 있다.

git 사용법(github, 명령어)이 궁금하다면 Git 설치부터 기본 사용법까지 (2) - git 사용법(github, 명령어)에서 확인할 수 있다.


Git 으로 협업(팀프로젝트)을 하는 방법

팀프로젝트란

  • 팀원들이 모두 함께 작업할 수 있어야 하고
  • 팀원들이 작업한 내용이 모두 반영되어야 하고
  • 반영된 내용이 최신화가 되어야 한다.

팀프로젝트를 할 경우 전체적인 작업 순서는 아래와 같다

  1. master branch git pull (메인 소스 가져오기)
  2. create new branch & work on branch (새로운 브랜치 생성 & 해당 브랜치에서 작업)
  3. git add & git commit (작업한 내용 저장)
  4. git push (저장한 내용 원격 브랜치에 반영)
  5. checkout master branch & merge work brnach (마스터 브랜치로 이동하여 작업했던 브랜치를 병합)
  6. git push (병합한 내용 원격 브랜치에 반영)

이제 이 순서대로 설명을 진행한다.

메인 소스 가져오기

우리는 새로운 작업을 시작하려면 새로운 브랜치를 생성해야 한다.

이를 가지치기라고도 하는데, 새로운 작업을 시작하려면 당연히 최신화된 소스가 필요하다.

최신화된 소스는 당연히 메인(마스터) 브랜치에 있을 것이니 이를 가져와 작업을 시작해야 한다.

git checkout master 

git pull

기본 작업 순서는 위와 같다.

  • git checkout master
    현재 브랜치를 마스터 브랜치로 설정
  • git pull
    원격 저장소에서 마스터 브랜치의 갱신된 내용을 가져온다.

새로운 브랜치 생성 & 해당 브랜치에서 작업

작업을 시작하기 위해 적절한 이름의 새로운 브랜치를 생성하고 해당 브랜치로 설정 후 작업을 시작한다.

git brnach workBrnach

git branch

git checkout workBranch
  • git branch workBranch
    workBranch 라는 이름으로 새로운 브랜치 생성
  • git branch
    브랜치 목록
  • git checkout workBranch
    현재 브랜치를 workBranch 로 설정
    브랜치를 생성하고 변경했다면 이제 작업을 시작해도 된다.
    실제로 로컬 저장소로 정했던 곳으로 가서 간단하게 소스 몇 개를 수정하고 다음으로 진행한다.

작업한 내용 저장

이제 작업한 내용을 로컬 저장소에 저장한다.

git status

git add .

git status

git commit -m "workBranch first commit"

git status
  • git status
    작업한 내용의 소스들을 확인한다.
  • git add .
    작업한 내용을 스테이징 시킨다.(=기록한다)
  • git status
    작업한 내용이 스테이징 되었는지 확인한다.
  • git commit -m "workBranch first commit"
    스테이징된 작업한 내용을 저장한다.
  • git status
    저장이 잘 되었는지 확인한다. 저장이 되면 수정했던 내용(스테이징된)들이 안 보이면 맞는 거다.
    만약 위의 코드처럼 진행했다면 "working tree clean" 이 나오면 맞다.

저장한 내용 원격 저장소에 반영

지금까지 작업한 것은 로컬 저장소였으니 이제 원격 저장소에 실제로 작업한 내용들을 반영해야 한다.

git remote -v

git push origin workBranch

#git push --set-upstream origin workBranch
  • git remote -v
    원격 저장소를 확인한다. 해당 작업 중에서는 원격 저장소의 이름을 확인하는데 사용한다.
    자신의 github 주소 앞에 원격 저장소의 이름이 지정되어 있다. 아마 대부분 origin 이지만 다르다면 다음 명령어에서 origin 대신에 해당 이름을 사용하면 된다.
  • git push origin workBranch
    원격 저장소에 workBranch 를 반영한다.
  • git push --set-upstream origin workBranch
    만약 [git push origin workBranch] 명령어가 오류날 경우 사용한다.
    origin 이라는 이름으로 workBranch 를 push 하는 명령어이다.
    만약 정상적으로 원격 저장소에 반영이 되었다면 github(원격저장소)에서 반영된 내용을 확인할 수 있다.

마스터 브랜치로 이동해 작업했던 브랜치(workBrnach) 병합

이제 메인이 되는 마스터 브랜치에서 작업브랜치의 소스를 합치는 과정이다.

git checkout master

git merge workBranch

git push origin master
  • git checkout master
    로컬 저장소의 브랜치를 마스터 브랜치로 설정
  • git merge workBranch
    master 브랜치에 workBranch 병합
  • git push origin master
    병합한 내용을 원격 저장소에 반영
    병합된 내용이 원격 저장소에 반영된 내용을 확인할 수 있다.


이런 방식으로 각 작업자들은 개별로 브랜치를 만들어 작업 후 메인 브랜치에 반영하면 된다.

근데 master 브랜치 하나만 두고 작업하면 실수할 위험이 있으므로 중간에 devlop 라는 브랜치를 하난 두는 것도 좋은 방법이다. 즉, 둘 다 메인이지만 devlop(=개발용), master(=운영용) 이라고 이해하면 된다.

  • 작업을 하는 메인 브랜치는 devlop 가 되고
  • devlop 에서 최종적으로 반영된 모습이 정상적인지 확인하고
  • master 브랜치에 반영하는 방식으로 진행하면 된다.

반응형