Git 맛을 조금만 더 봐보자

전성영·2022년 5월 10일
0

Git 정복하기

목록 보기
2/3

지난 포스팅에서는 혼자서 하는 git이었다면 이번에는 협업할 때 필요한 용어들을 정리해 보았다.

1. 누가 이 작업 할 것인지 정한다. - Issue
2. 각자 맡은 것을 작업한다. - Branch
3. 각자 작업을 프로젝트에 합친다. - merge
(경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge

이렇게 세 가지 용어를 중점적으로 다뤄볼 것이다.

Issue란?

  • 프로젝트에서 issue(이슈)는 프로젝트에서 해결해야하는 문제로 아래같은 것이 있어요.
    • 버그(프로그램이 원하는 대로 동작하지 않는 것)를 신고 (Bug report, 버그 리포트)
    • 기능 추가 등의 프로젝트 개선 제안 (enhancement)
    • 위 문제들을 해결하기 위한 작업단위

이러한 것들을 Issue로 등록하고 해결한다.

등록하면 #2 라는 번호?가 주어지고 커밋할 때 #2 를 붙여주면 자동으로 인식한다! 깃허브는 참 똑똑해,,

등록, 삭제도 매우 간편하고 Labeling도 할 수 있어서 협업할 때 매우 괜찮은 것 같다.

Branch란?

각자의 작업을 할 수 있는 공간을 만든다. ex) 나뭇가지 느낌?
이라고 생각하면 쉽다. 때문에 여러 작업을 동시에 진행할 수 있다는 장점이 있다!

  • 기본적으로 Git은 main barnch를 만든다.
  • 처음 commit하면 이 main barnch가 생성된 commit을 가리킨다.
  • 이후 commit을 만들면 main barnch는 자동으로 가장 마지막 commit을 가리킵니다.

Sourcetree 에서 branch 생성 방법은 매우 쉽다.

가지를 뻗고 싶은 곳에 우 클릭 후 브랜치를 생성하면 끝!

만약 main에서 만든 branch 이름이 feature/abc라면
feature/abc에서 commit한 내용은 main에게 영향을 주지 않는다!

branch를 만들어 주었으면 이제 합치는 방법 즉 Merge(병합)을 알아보자!

Merge란?

Merge(병합) 는 branch를 다른 branch에 합치는 것이다.
즉, 특정 branch의 commit 들을 다른 branch의 commit 내역에 모두 반영하는 것이다.
기본적인 설정은 해당 branch의 모든 commit 을 모두 다 반영한다고 생각하면 된다.

우선 Merge를 진행할 때 main으로 체크아웃을 해야한다!!

그 후 상단에 있는

병합을 누르게 되면 Merge 성공!

Merge를 하게 되면 이렇게 예쁜 선들이 그려진다!

만약 Merge Conflict가 난다면?

하나의 파일을 여러 branch에서 수정하고 하나의 branch에 merge 하려고 할 때 merge conflict(병합 충돌) 가 발생한다.

이 txt파일은 충돌난 txt 파일이다.

<<<<<<< 에서 >>>>>>> 까지가 충돌이 나는 부분인데, 하나의 파일을 여러 군데에서 변경했기 때문에 변경된 내용 중 어떤 것을 브랜치에 반영할지 파악을 돕기 위해 정보를 알려주고 있다. 역시 똑똑해,,,

=================================================
<<<<<<< HEAD
{현재 브랜치의 다른 파일 내용}

=====================

{충돌나는 브랜치명 또는 commit에서의 다른 파일 내용}

'>>>>>>>' 충돌나는 브랜치명 또는 commmit 아이디

=================================================
이렇게 보면 편하다.

충돌을 해결하기 위해서는 반영할 내용만 남기고 지워주면 된다.

충돌해결 후 commit을 하면 자동으로 commit 메시지를 작성해준다.

아직 깃에 대해 부족함을 많이 느낀다.
시간을 내서 열심히 공부해야겠다.
끝!!

profile
Slow and Steady

0개의 댓글