본문 바로가기
Programming/C

Visual Studio 2022로 Github 연동해서 협업하기 (C 프로젝트)

by 고간디 2024. 5. 16.
더보기

대학교에 와서 처음으로 팀 프로젝트를 진행하게 됐다.

협업할 때 깃허브를 사용하면 훨씬 작업물을 수월하게 만들 수 있다는 것을 알고는 있었지만 협업을 해볼 기회가 없었어서 실제로 활용해본 적은 없었다.

마침 이번에 팀 프로젝트도 있으니 깃허브도 배울 겸 깃허브로 작업하자고 그랬는데 막상 시작하니 다들 적극적으로 활용해보려는 것 같지는 않다.

 

그도 그럴 것이 애초에 깃허브에 대한 이해도가 너무 부족한 것 같다.

나도 이해하는 데에 한 세월이 걸렸기에 그냥 그러려니 하고 있지만 좀 아쉽긴 하다..

나 정도만 이해해도 후딱후딱 끝내서 맘 편하게 있을 수 있을 것 같은데..

 

아무튼 깃허브를 Visual Stduio Community 2022와 연동하여 사용하고 싶은 사람들을 위해서 글을 좀 써보려 한다.

찾아보니까 2022와 깃허브 연동하는 한국어 글들이 많이 안 보이더라..

혹시라도 나중에 우리 팀원이 깃허브 사용법에 대해서 물어본다면 이 글을 줘야겠다 생각하며 쓴다..

 

꼭 협업을 위해서가 아니더라도 VS에서 작성한 코드를 내 깃허브 리포에 바로바로 커밋하고 싶을 때에도 동일하게 사용 가능하다.


일단 깃허브 리포에 올려둘 프로젝트를 먼저 만든다.

본 글에서는 C 프로젝트를 기준으로 작성한다.

 

Visual Studio Commnunity 2022를 실행한다.

새 프로젝트 만들기 -> 빈 프로젝트

 

프로젝트명이 Github에 올라가는 리포 이름이 된다.

 


프로젝트를 업로드할 깃허브 계정을 추가해준다.

당연한 얘기지만 해당 계정의 리포로 프로젝트가 올라간다.

 


그럼 빈 프로젝트가 생성되는데 위의 내비게이션에서 Git -> Git 리포지토리 만들기를 눌러준다.

 


딱히 손댈 것은 없다.

README도 같이 올리고 싶으면 체크 표시해주면 된다.

 

Github 계정이 제대로 선택되어 있는지 확인 후 만들기 및 푸시

 


그러면 VS 의 오른쪽 Git 변경 내용에 리포지토리가 생성되었다는 메세지가 등장한다.

Github 웹에서도 새 레포지토리가 생성된 것을 확인할 수 있다.

 


VS로 main.c라는 코드를 하나 작성했다.

그러고 Git 변경 내용변경 내용을 보면 main.c와 vs 프로젝트 관련 파일이 있는 것을 볼 수 있다.

 

그 옆에는 A, M 알파벳이 있는데 각각 추가됨(Added), 수정됨(Modified)을 나타낸다.

기존 리포에서 변경된 사항을 알려준다.

 

십자 모양 플러스(+) 버튼으로 변경된 파일을 스테이징된 변경 사항으로 이동시킨다.

사실 바로 push해서 리포에 업로드할 수도 있지만 우리는 협업 프로젝트이기 때문에 브랜치(branch)라는 것을 활용해줄 것이다.

 


브랜치는 내가 구구절절 말로 하는 것보다 위 사진으로 이해하는 게 더 편할 듯하다.

 

협업을 할 때에는 다른 사람이 코드를 수정하는 동안 난 기다리기만 할 수 없으니 동시에 작업을 하는 것이 효율적이다.

그렇기 때문에 각각 작업물을 만들고 합치게 되는데 이때 사용되는 기능이 브랜치이다.

 


로컬에서 새 분기를 만들어보자 (말이 분기지 브랜치와 같은 의미이다.)

test라는 이름의 브랜치를 만들었다.

 

이때, 생성된 브랜치는 Github의 원격 저장소에는 아직 생성되지 않는다.

로컬 저장소에만 있는 브랜치인 것이다.

 


main.c와 프로젝트 파일들을 스테이징된 변경 사항으로 올려놓고 test 로컬 브랜치에 commit하면 로컬 test 브랜치가 업데이트된다.

아직은 원격 저장소에 브랜치가 생성되지 않은 상태이다.

 


원격 저장소에 내 로컬 test 브랜치를 추가하고 싶다면 push를 해주면 된다

말 그대로 원격 저장소로 내 코드를 민다고 생각하면 될 것 같다.

 


Github에서 확인해보면 test라는 이름으로 브랜치가 생성되어 있는 것을 볼 수 있다.

 


리포 프로젝트는 master라는 최상위 브랜치에 있는데 test 브랜치를 합쳐서 메인 프로젝트를 업데이트하고 싶다면 Pull Request를 보내면 된다.

일반적으로 PR이라고 부르는데 리포 관리자에게 내 코드를 당겨주세요 라며 요청한다는 뜻이다.

 

내 맘대로 레포를 수정하고 난장판을 피우면 안 되기에 이렇게 내가 수정한 코드를 보고 이렇게 업데이트해보는 것은 어떨지 허락을 요구하는 것이다.

 


PR을 받은 관리자는 요청을 받고 브랜치를 merge하면 그 코드대로 프로젝트가 수정된다.

레포지토리가 PR대로 업데이트된 것이다.

 


이렇게 업데이트된 레포지토리는 실시간으로 내 로털 저장소에 반영되지 않는다.

그럴 땐 원격 master에서 끌어오기(pull)를 하면 된다.

 

브랜치를 pull할 수도 있다.

 


프로젝트를 생성한 사람의 로컬 저장소에는 원격 저장소의 코드들이 있지만 신규 협업자의 경우 프로젝트를 직접 생성하지 않았기에 로컬 저장소에 코드들을 가지고 있지 않다.

로컬 저장소로 파일들을 가져오기 위해서 깃허브에 있는 git 주소를 복사한다.

 


리포지토리 복제 -> 리포지토리 위치에 아까 복사한 git 주소 입력 후 복제해준다.

 


이제 협업자의 로컬 저장소에서도 이렇게 프로젝트를 사용할 수 있다.

푸시하고 풀하는 방법은 앞서 언급한 것과 같다.

 


더보기

만약 깃허브를 잘 모르거나 경험이 많이 없는 사람이라면 이 글만 보고서는 제대로 이해하지 못 할 것이 뻔하긴 하다..


https://learn.microsoft.com/ko-kr/visualstudio/version-control/git-with-visual-studio?view=vs-2022

Microsoft가 직접 말아주는 공식 문서이니 정확하고 자세한 정보가 제공될 것이다.

조금 더 자세히 알고 싶다면 위 링크에서 보는 것을 추천한다.

 

pull과 fetch에 대한 설명은 아래 글로 이해하는 것이 직관적이고 이해하기 쉬울 것 같다.

https://velog.io/@hyhy9501/Git-GitHub-11-Fetch%EC%99%80-Pull

 

개념 자체가 제대로 이해가 안 될 수도 있는데 이럴 땐 그냥 무작정 따라해보고 시행착오 해쳐나가다 보면 빠르게 이해할 수 있다.

내가 그랬다.

728x90
반응형

댓글