<협업을 위한 Git 활용 기초 2주차> Issue, Branch, Merge

이용헌·2022년 1월 7일
1
post-thumbnail

학습 내용 요약

  1. Git을 활용한 전체적인 협업 흐름
  2. Issue
  3. Branch
  4. Merge

1. Git을 활용한 전체적인 협업 흐름

Git을 이용해서 협업하는 과정을 먼저 살펴보자.

  • ① 누가 해당 작업 할건지 정함
  • ② 담당별로 작업 나누고 공간 분리
  • ③ 나눠서 했던 작업들을 한 곳에 모아 합침
  • ④ 필요한 것만 추려 최종 반영

보통 git을 이용해서 위의 단계에 따라 프로젝트를 진행한다. 각 단계에 맞는 명칭이 바로 ① issue, ② branch, ③ merge 이다. 이제 단계별로 알아보자.

2. Issue

1) 설명
개발 및 관리할 기능, 발생한 문제나 버그, 작업 담당자 배정 등을 논의하고 정하는 작업. issue에서는 문제를 제기하거나 어떤 제안을 할 수 있는 곳(pull request)이기도 하다.

2) 사용법

  • github에서 해당 repo에 접속
  • issues탭의 new issue
  • 제목, 내용 입력, 오른쪽에 세부 설정(ex. assignees, labels 등)
  • submit issue
  • 작업이 끝난 것은 close issue로 닫을 수 있고, 다시 시작하려면 reopen issue를 하면 된다.

제목에 '#번호' 를 붙이면 이슈 번호가 되는데, 나중에 commit 메시지에 적어서 작업 내역과 링크로 연결되는 기능을 활용할 수 있다.

3. Branch

1) 설명
issue에서 정한 대로 작업을 나눠서 하는 공간을 만드는 것

2) 사용법

  • sourcetree의 히스토리에서 기준이 되는 main branch로 체크아웃
  • 상단탭의 브랜치 클릭
  • 브랜치명 작성 후 생성
  • 왼쪽탭에 생성된 브랜치 확인
  • 해당 브랜치의 작업 종료 후 기준 브랜치로 체크아웃
  • 해당 브랜치 마우스 우클릭하고 삭제(강제 삭제)

o 표시된 곳이 현재 작업 중인 공간이고, 해당 브랜치로 '체크아웃' 된 상태라고 한다. 그리고 체크아웃 된 브랜치에만 commit이 반영된다.
체크아웃: 작업할 공간으로 접근하는 것

4. Merge

1) 설명
나눠서 했던 작업을 하나의 공간으로 합치는 작업. 즉, 각 브랜치의 작업 내역을 기준 브랜치로 모아서 합치는 것이다.

2) 사용법

  • 기준 브랜치로 체크아웃
  • sourcetree 상단탭 병합 클릭
  • 병합할 브랜치 선택, 옵션 체크(즉시 커밋 병합, 병합 커밋에 있는 메시지 첨부, 빠른 병합 가능해도 새 커밋 생성)하고 확인
  • 작업 끝난 브랜치는 삭제

※ 주의할 점은 서로 다른 브랜치에서 같은 파일을 작업하면 병합 시 충돌이 발생할 수 있다.

이를 해결하는 방법은 다음과 같다.

  • 충돌한 파일 내용 수정
  • <<<<HEAD, =====, >>>>>충돌한 브랜치명, commit 메시지 삭제
  • 해당 파일 commit
  • 다시 병합 시도

위처럼 작업한 후, 결국 마지막으로 원격 repo에 반영시켜야 최종적으로 넘어가는 것이다. 그래서 로컬에서 병합까지 한 후 원격 repo로 넘겨주자.

원격 repo에 기준 브랜치 반영

  • 기준 브랜치의 최근 commit 내역 선택
  • 상단탭 푸시 클릭
  • 원격 repo로 반영할 브랜치만 선택하고 push
  • github에서 확인

지금까지 살펴본 내용을 자세히 보면, 기준 브랜치라는 말이 있었다. 즉, 나눠서 작업한 곳도 브랜치고, 작업의 기준이 되는 곳도 브랜치인 것이다.

그러므로, 1주차 강의에서 배웠던 tracking, push/pull은 결국 로컬 repo와 원격 repo의 브랜치를 기준으로 연결하고, 작업 내역을 반영시키는 것이다.

어렵거나 완전히 이해 못한 내용
개념을 공부하고, 직접 실습하고, 내용을 정리하고 복습하는 과정을 거치니 git을 활용해서 작업하는 것이 어렵지 않았다. 아직 git을 더 다양하게 활용하지 못할 뿐이지만, 협업할 때 여러 기능들을 팀원들과 같이 써보면 더 잘 알 수 있을 것이다.

참고 자료
https://guides.github.com/features/issues/
https://terry-some.tistory.com/93

profile
세상에 기여하는 개발자가 되자

0개의 댓글

관련 채용 정보