Github 사용법 2. 타인과 협업하기 (git clone, pull)

하마·2025년 2월 19일
0

git & github

목록 보기
5/14

원격 저장소를 쓰는 이유 중 중요한 건 남들과 협업할 수 있다는 겁니다.
어려운건 아니고 개발자 5명이서 각각 작업한 내용을 원격 저장소에 올리면 그게 협업 아니겠습니까
협업해봅시다.

1. 코딩노예 1명을 고용했습니다.

물론 여러분은 친구가 없으니까 가상의 팀원을 하나 만들어봅시다.
코딩노예 팀원이 원격 저장소에 있던 코드를 같이 짜고 싶다면 어떻게 할까요.

그 친구도 똑같이 코드 짜서 git push 어쩌구 하면 그게 협업 입니다.

?? 코드를 줘야 짜든 할거아님?

당연히 기존 코드를 다운받아 시작할 수 있습니다.

다만 그 팀원도 github 아이디가 있어야 하고
그 팀원의 아이디를 Collaborators 메뉴에서 팀원 등록해야 협업 가능합니다.

2. 원격 저장소에 있던거 그대로 다운로드 받기

기껏 원격 저장소에 올렸는데 언제까지 카톡, 메일로 파일 옮겨요

git clone 원격저장소주소
하십쇼

참고로 저렇게 하면 폴더 자체가 생성되고,
git clone 원격저장소주소 . 해주면 안에 파일만 다운받습니다.

이미 폴더를 만들었으면 . 을 붙여주고, 안만들었으면 없이 하면 되겠죠?

3. 팀원이 커밋 하려는데 문제가 생김

혼자 할 땐 상관없는데
git push 는 맘대로 할 수 있는게 아닙니다.
갑자기 다른 놈이 만든 파일에 원격 저장소에 생기면 git push 못합니다.


예를 들어 원격 저장소에서 hello 라는 파일을 만들고 커밋했습니다.
이런 식으로 원격 저장소가 타인에 의해 업데이트되었다고 칩시다.

다른 곳에서 일하던 코딩노예 팀원도
방금 만든 파일을 원격 저장소에 업로드하고 싶어진 겁니다.

예를 들어 코딩노예가 hi라는 파일을 만들었다고 칩시다.
그럼 이전과 같이 커밋 하고 git push 하면 됩니다.
(팀원인 척 해줄 친구가 없으면 그냥 원래 코드 짜던 곳에서 git push 해봅시다.)

"안되는데요"

원격 vs 로컬 내용이 다르다면 로컬 저장소에서 git push 가 안됩니다.
왜냐면 그런 상황에서 올려버리면 코드가 꼬이기 때문에 얘가 미리 예방해주는 겁니다.

4. git pull 이용하면 현재 원격 저장소 내용 가져올 수 있음

git pull 원격저장소주소 브랜치명

  • origin 이라는 별명을 지어놨으면 당연히 사용 가능

이러면 원격 저장소의 어떤 브랜치에서 최신 버전을 가져와 로컬 저장소에 합쳐줍니다.
비로소 내 로컬이 원격 저장소를 반영한 최신 상태가 되기 때문에 이제 git push 가 가능합니다.

결론은 변동사항이 생겼다면 git pull 하고 나서 git push 하면 됩니다.

참고
git pull 명령어는 git fetch + git merge 의 축약어입니다.

git fetch 는 원격 저장소에 있는 커밋 중에 로컬에 없는 신규 커밋을 가져오라는 뜻이고
git merge 는 배웠으니까 아시죠?

그래서 git pull 할 때 팀원끼리 같은 파일을 건드리고 있을 경우 merge conflict가 날 수 있습니다.
conflict는 branch 다룰 때 배웠으니 알아서 해결하시면 됩니다.




오늘의 결론

협업 시 git push 하기 전에 터미널에서 뭐라고 그러면 git pull 오지게 하면 됩니다.




강의 출처

0개의 댓글