본문 바로가기
개발/Git & GitHub

Github로 협업 하기 ( git clone, pull 사용법 알아보고 코드 내려받기 )

by ▩▦▤▧▩▥ 2023. 6. 3.
반응형

지난 글에서는 Github에 가입하고 코드를 원격 저장소에 저장하는 방법에 대해서 알아보았습니다. 이번 글에서는 다른 사람과 협업을 위해 원격저장소에 저장한 코드를 가져와서 사용하는 방법과 다른 사람과 함께 협업하는 방법에 대해서 알아보도록 하겠습니다.

 

 

목차
협업을 위해 Github에서 코드 가져오기 : Git clone
협업 작업 후 코드 Push 전 해야 할 일 : Git pull

 

 

협업을 위해 Github에서 코드 가져오기 : Git clone

협업을 하기 위해서는 Github의 원격 저장소에 저장된 코드를 작업할 PC에 설치해야 합니다. 그러기 위해서는 두 가지 방법이 있습니다.

 

 

1. Github 저장소에서 파일 다운로드 하는 방법

우선 첫 번째 방법은 Github 저장소에서 코드들을 zip 파일로 다운로드하거나, 직접 연결해 주는 방법이 있습니다. 간편하게 zip 파일로 다운로드하여서 PC에서 압축 풀고 사용해도 됩니다.

github 사이트 화면

 

 

2. 터미널에서 직접 설치하는 방법

다음 방법은 터미널에서 직접 설치하는 방법입니다. 방법은 터미널에 아래와 같이 입력하면 됩니다.

git clone 원격저장소주소

 

원격저장소 주소는 아래 사진에서 처럼 확인 할 수 있습니다.

github 사이트 화면

 

 

 

알아두기

협업을 하기 위해서는 협업하는 계정을 등록해 놓아야만 합니다. 협업할 계정 등록은 Settings -> collaborators에서 할 수 있습니다.

github 사이트 화면

 

 

 

협업 작업 후 코드 Push전 해야 할 일 : Git pull

자 이제 각자 열심히 코드 작업을 하고 났으면 어떻게 해야 할까요? 바로 해당 코드들을 원격 저장소에 올려야겠죠? 지난 글에서 알아보았지만 코드를 원격저장소에 올리는 방법은 아주 간단합니다. Git push 해주면 되죠. 해당 방법은 아래 글에서 확인하실 수 있습니다.

 

Github 사용법 ( git push로 remote repository에 코드 올리기 )

 

 

어? 그런데 왜 전 안되죠????

혼자 작업할 때는 Push 할 때 문제가 없었지만, 갑자기 협업을 하니깐 안 되는데요?? 이렇게 생각할 수 있습니다. 하지만 다 이유가 있죠.

vscode 터미널 화면

 

 

이유는 간단합니다. 내가 이전에 최신으로 commit 한 내용과 현재 원격저장소의 내용이 다르기 때문에 발생하기 때문입니다. 그렇기 때문에 만약 우리가 push를 시도하려는 시점에 누군가 먼저 원격 저장소에 push를 해서 내용을 변경해 놓았다면, 싱크를 맞추어 주는 작업을 해야 합니다. 

 

 

Git push 전에 Git pull 하기

싱크를 맞추는 작업은 아주 간단합니다. 원격 저장소의 내용을 먼저 받아서 내용을 맞춘 다음에 push를 하면 됩니다. 먼저 터미널에 아래와 같이 입력해 주세요.

git pull 원격저장소주소

만약 이전에 -u 옵션을 설정해 놓았다면 git pull해도 원격저장소의 내용을 내려받을 수 있습니다.

vscode 터미널 화면

 

 

 

알아두기

혹시 같은 파일의 같은 줄을 수정했을 경우, merge confilct가 발생할 수 있습니다. 이럴 때는 merge confilct 해결하는 방법으로 진행하시면 됩니다. 만약 방법을 모르겠다면 아래 글을 참고하시기 바랍니다.

 

Git Branch 사용법 ( git 브랜치 생성 및 관리, git conflict 해결 )

 

 

그런데 갑자기 왜 merge conflict가 발생할까?

그 이유는 git pull 명령어 자체가 git fetch와 git merge를 합쳐놓은 것이기 때문입니다. git fetch는 원격저장소에 있는 commit 중 로컬에 없는 신규 commit을 가져오는 것이고 그 후에 merge를 하기 때문에, merge conflict가 발생하기도 합니다.

 

 

 

이번 글에서는 협업을 시작하는 방법과 협업 도중 발생할 수 있는 문제를 해결하는 방법에 대해서 알아보았습니다. 다음 글에서는 github에서 브랜치를 통해 협업하는 방법에 대해서 추가로 알아보도록 하겠습니다.

 

 

 

함께 보면 좋은 글

Git 개발 전략 ( Git Flow 전략 알아보기 )

Git Branch Merge 다양한 방법들( fast forward merge, rebase merge, squash merge ) 및 Branch 삭제방법

 

 

반응형

댓글