키보드워리어

【Git】협업하기 위한 깃 본문

개발 관련/Git

【Git】협업하기 위한 깃

꽉 쥔 주먹속에 안경닦이 2022. 8. 4. 18:16
728x90

 

안녕하세요 【키보드 워리어】
블로그 방문자 여러분, 안경닦이입니다.



오늘은 Git 컨텐츠로 돌아왔습니다.


깃의 목적

깃을 배우는 중요한 이유 중 하나는 프로그래밍 언어를

팀으로 협업하여 프로젝트를 할 때 편하게 작업하기 위해서 사용하는 것입니다.

 

 

 

만일 하루종일 짜 놓은 코드가 서로 충돌하여 프로그램에 문제가 생긴다면

효율적이라 할 수가 없을 것입니다.

 

 

 

그래서 우리는 충돌이 최대한 일어나지 않게,

대략적인 프로세스를 이해하는 것이 좋겠죠? :)

 

 

 

깃은 다음과 같은 작업으로 이뤄진다고 할 수 있겠습니다.


 

1. 누가 이 작업 할 것인지 정한다. (할당)

 

2. 각자 맡은 것을 작업한다. (브렌치)

 

3. 각자 작업을 프로젝트에 합칠 수 있게 공유한다. (병합)

 

4. 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. (피드백)

 


1. 누가 이 작업 할 것인지 정한다. (할당)

 

 

프로젝트에서의 이슈란?

어떠한 ‘해결 방안’을 의미합니다.

이슈 등록

깃허브 페이지 오른쪽 부분에서 빨간색 박스 쳐져 있는 부분은 누가 작업할건지 할당하는 부분입니다.

새로운 이슈나, 기능들이 있을 때 라벨로 붙여주기도 합니다

 

 

 

이 할당을 통해서 누가 작업할건지 정하는 역할을 합니다.

내가 해야하는 작업을 커밋하고 등록할 때는 어떻게 할 수 있을까요?

 

 

 

커밋메세지

 

 

 

이슈가 지정된 작업을 마치고, 커밋을 할 때

이슈 번호가 생성된 것과 같은 숫자를 #과 함께 입력해 주면

이슈관리를 쉽게 할 수 있도록 편의성을 제공합니다.

 


2. 각자 맡은 것을 작업한다. (브렌치)

 

Branch에 대해 알아볼까요?

브랜치는 할당된 작업을 본인만의 공간에서 작업하는 걸 도와줍니다.

 

 

 

sourcetree에서 왼쪽 카테고리를 보면 브렌치를 생성할 수 있게 합니다.

 

 

 

깃허브를 사용한다면, 메인 브랜치를 main으로 지정 후

자신의 작업을 하는 branch를 새로 만들게 됩니다.

 

 

 

브렌치 이름은 feature/이슈 번호_관리하기 쉬운 이름으로 짓는 것이 관례입니다.

 

 

현재상황알려주는 노드

 

 

소스 트리에서 위와 같은 파란색 체크박스를 찾아볼 수 있어요.

 

 

Main: 로컬 repo의 main 브랜치

Origin/main: origin (연결시켜준 원격 repo)의 main 브랜치

Origin/HEAD: (연결시켜준 원격repo)의 현재 작업 중인 커밋을 의미합니다.

 

 

 

sourcetree에서는

현재 작업 브랜치를 브랜치명 왼쪽에 O 표시가 되어있습니다.

 

 

 

이것을 체크아웃이라고 표현하는데요.

 

 

 

체크아웃된 파일 상태를 파인더에서 보여줍니다. (mac)

O표시가 바로 지금 작업 중인 브렌치입니다.

 

 

 

새로운 노드형성

 

 

 

새로운 브렌치에서 커밋하는 순간 위와 같은 그림처럼

새로운 노드 형성됩니다. 커밋을 할 때마다 새로운 커밋이 생겨나고요.

 

 

 

주의) 만약 이 브렌치를 임의로 삭제한다면 파일 상태도

브렌치가 생기기 이전 상태로 돌아가니 주의해줍시다!


 

3. 각자 작업을 프로젝트에 합칠 수 있게 공유한다. (병합)

 

 

병합은 작업한 브랜치를 다른 브랜치에 합치는 개념입니다.

 

 

 

특정 브랜치의 커밋들을 다른 브랜치의 커밋 내역에 모두 반영하는 것이에요.

 

 

 

병합을 해보고 싶다면 먼저 병합하고 싶은 브랜치에 체크아웃해줍니다.

 

 

 

[병합] 버튼을 눌러서 진행합니다. 옵션에는 아래와 같은 조건이 체크되어야 합니다.

 

 

 

✅즉시 커밋 병합

✅병합 커밋에 있는 메시지들을 첨부하세요

✅빠른 병합이 가능해도 새 커밋 생성

 

 

 

확인 버튼 클릭

 

노드를 병합

 

 

자 그래프를 보면 노드가 합쳐진 걸 볼 수 있죠? 병합이 되었습니다.

 

 

 

그런데, 왜 origin은 그대로일까요?

 

 

 

origin은 원격 레포의 상태를 알려주는 것이죠.

아직 푸시를 하지 않았기 때문에 원격 레포는 병합된 커밋이 반영이 되지 않은 것입니다.

 

 

 

main 브런치의 이동

 

푸시해주면 원격 main브렌치도 앞으로 이동됩니다.

 


 

오늘은  협업할 때 사용하는 할당, 브랜치 작업, 병합까지의 단계를 알아보았습니다.

 

다음에는 충돌이 일어났을 때 해결하는 방법과

pull requset, 커밋 수정에 대해 살펴보도록 하겠습니다.

감사합니다

완료도장

728x90

'개발 관련 > Git' 카테고리의 다른 글

[IntelliJ] 깃허브 적용  (0) 2023.04.20
【Git】협업을 위한 깃 - 2  (1) 2022.08.13
【Git】소스트리 버전관리  (0) 2022.07.31
【Git】 Git, Github? 차이가 뭔가요??  (0) 2022.07.24
【Git】기초 준비 과정  (0) 2022.07.14