본문 바로가기
Git&GitHub/GitHub

GitHub를 이용한 협업을 위한 주요 개념

by Fletcher 2024. 7. 8.

반갑습니다!

오늘은 Git을 이용하는데에 꼭 알아둬야 하는 필수 개념들을 간단하게 정리해보겠습니다 ^^!!

먼저 5가지 정도 소개해드리겠습니다!

 

 

 

1. 커밋(Commit)

커밋은 일종의 "변경사항 덩어리"입니다 ^^

소스코드를 작업하는 데에 있어서 어제 기준의 작업물에 대해

오늘 새로운 작업들을 추가해서 코드 수정, 추가, 삭제 등의 행동을 했다고 가정하겠습니다

그럼 어제에 비해서 여러가지 변경 사항이 생겼죠?

 

이렇게 변경 사항이 생기기만 하는게 중요한게 아니라 소스에 적용을 시키는 명령입니다

 

커밋은 어떤 의미 있는 작업을 했을 때 커밋 메세지와 함께 등록을 하는데요

$ git commit -m "임의의 메세지" 명령어로 실행해도 좋고

 

GitHub Desktop을 이용한다면,

summary와 Description을 기입한 후 Commit 버튼을 눌러 적용하면 되겠습니다 ^^!

아래는 예시 이미지입니다!

 

 

 

 

 

2. 푸쉬(Push)

의미 있는 작업 덩어리들을 계속 Commit하며 스테이지(stage)에 반영합니다

하지만 commit만 해서는 팀원들과의 공동 공간인 원격 Repository에는 반영되지 않습니다!

이 제 3의 공간에 반영을 해서 완전히 적용을 시키려면 push 작업을 해주면 되겠습니다!

그럼 다른 작업자들(개발자들)도 내가 수정하거나 추가한 코드를 볼 수 있게 되는거죠 ^^

 

$ git push origin main 명령어로 실행해도 좋고

 

GitHub Desktop을 이용한다면,

Commit 후 Push origin 버튼을 눌러 적용하면 되겠습니다 ^^!

아래는 예시 이미지입니다!

 

 

 

 

 

3. 풀(Pull)

영단어로 Push는 '밀다'는 뜻이고, Pull은 '당기다'라는 뜻이죠?

원격 리포지토리에 대해서 push를 한다는건, 변경사항을 밀어넣는 것

pull은 저장소에 저장된 것을 당겨서 받아온다는 느낌이 혹시 느껴지시나요? ^^

 

Pull은 Push와 정반대라고 생각하시면 되겠습니다!

원격 리포지토리의 데이터를 내 Local로 복사해서 가져오는 것이죠

 

$ git pull 명령어를 이용하셔도 되고,

GitHub Desktop의 Repository 메뉴 탭에서 Pull을 선택해 클릭하셔도 됩니다 ^^!!

아래는 예시 이미지입니다!

 

 

 

 

 

4. 브랜치(Branch)

Branch가 영단어로 '나뭇가지' 등을 의미하죠? ^^

핵심 줄기에서 뻗어나가는 보조 줄기 등의 느낌인데요!

 

리포지토리를 생성하면 기본적으로 main 브랜치 하나가 있습니다!

근데 동일한 리포지토리에 대해서 서로 다른 작업자가 개발을 수행할 때,

공유 부분도 있지만 서로 충돌 없이 여러 버전을 개발하고 싶을 때 어떻게 해야할까요? 

 

이 때 브랜치를 나누면 됩니다!

프로젝트 그 자체의 브랜치는 main으로,

각 작업자는 자신만의 새 브랜치를 만들어서 해당 시점에서 새로운 가지로 뻗어나가 개발을 하는 것이죠!

그럼 push를 하더라도 main 브랜치에는 아무 영향이 없습니다 ^^!

 

새로 뻗어나간 브랜치에서 개발한 내용을 main으로 통합하고 싶다면

바로 다음에 이어지는 내용인 merge를 하면 됩니다^^!

 

$ git branch 브랜치 이름 명령어를 이용하면 되겠습니다!

GitHub Desktop에서는 화면 상단 메뉴 중 Branch를 선택하시면

브랜치와 관련된 작업을 수행할 수 있습니다 ^^!

 

아래는 예시 이미지입니다!

 

 

 

 

 

5. 머지(Merge)

보통 팀 프로젝트를 진행할 때, 작업자들이 해당 분량의 코드 개발이 완료되었다고 해서

main 브랜치에 바로 push를 하지는 않습니다!

작업자가 워낙 다수이고, 어디에서 오류가 발생할지 모르는지라 최대한 안전을 기하기 위해서죠 ^^!

 

바로 위에서 브랜치에 대해서 살펴보았죠?

서로의 코드가 충돌을 일으키지 않도록 개발자들은 자신의 브랜치를 만들어서 코드를 개발하고,

테스트를 마치면 dev라는 브랜치에 자신의 작업물을 병합하고 이 dev에서 문제가 없으면

main 브랜치에 완전히 병합을 시킵니다

 

merge라는건 뻗어나가 있던 해당 갈래(브랜치)를 특정 갈래(브랜치)에 합치는 일을 뜻합니다!

브랜치와 브랜치를 합치는 작업을 뜻하는 것이죠 ^^

 

 

$ git merge 타겟 브랜치 이름 명령어를 이용하면 됩니다!

GitHub Desktop을 이용하는 경우는 마찬가지로

화면 상단의 메뉴 탭 중 Branch를 선택하시고,

그 하위 메뉴 중 Merge into curren branch를 클릭해주시면 되겠습니다 ^^ 

 

아래는 예시 이미지입니다!

 

 

이번 포스트에서는 GitHub를 이용한 협업을 위해서

다섯 가지의 핵심 개념을 살펴보았습니다 ^^!!

 

"백지장이라도 맞들면 낫다"라는 속담이 있죠 ^^ 

혼자서는 아무리 힘든 작업이라도 팀과 팀원이 있고,

이와 같은 효율적인 협업 Tool들을 이용해 함께 작업하면

프로그래밍이란 기술로서 세상에 가치를 더할 수 있음에 늘 설레고 기쁩니다 ^^!!

 

앞으로도 유익한 내용으로 포스트 작성하도록 하겠습니다!

읽어주셔서 감사합니다 ^^!!