원격 저장소를 쓰는 이유 중 중요한 건 남들과 협업할 수 있다는 겁니다.
어려운건 아니고 개발자 5명이서 각각 작업한 내용을 원격 저장소에 올리면 그게 협업 아니겠습니까
협업해봅시다.
물론 여러분은 친구가 없으니까 가상의 팀원을 하나 만들어봅시다.
코딩노예 팀원이 원격 저장소에 있던 코드를 같이 짜고 싶다면 어떻게 할까요.
그 친구도 똑같이 코드 짜서 git push 어쩌구 하면 그게 협업 입니다.

?? 코드를 줘야 짜든 할거아님?
당연히 기존 코드를 다운받아 시작할 수 있습니다.
다만 그 팀원도 github 아이디가 있어야 하고
그 팀원의 아이디를 Collaborators 메뉴에서 팀원 등록해야 협업 가능합니다.
기껏 원격 저장소에 올렸는데 언제까지 카톡, 메일로 파일 옮겨요
git clone 원격저장소주소
하십쇼
참고로 저렇게 하면 폴더 자체가 생성되고,
git clone 원격저장소주소 . 해주면 안에 파일만 다운받습니다.
이미 폴더를 만들었으면 . 을 붙여주고, 안만들었으면 없이 하면 되겠죠?
혼자 할 땐 상관없는데
git push 는 맘대로 할 수 있는게 아닙니다.
갑자기 다른 놈이 만든 파일에 원격 저장소에 생기면 git push 못합니다.
예를 들어 원격 저장소에서 hello 라는 파일을 만들고 커밋했습니다.
이런 식으로 원격 저장소가 타인에 의해 업데이트되었다고 칩시다.
다른 곳에서 일하던 코딩노예 팀원도
방금 만든 파일을 원격 저장소에 업로드하고 싶어진 겁니다.
예를 들어 코딩노예가 hi라는 파일을 만들었다고 칩시다.
그럼 이전과 같이 커밋 하고 git push 하면 됩니다.
(팀원인 척 해줄 친구가 없으면 그냥 원래 코드 짜던 곳에서 git push 해봅시다.)

"안되는데요"

원격 vs 로컬 내용이 다르다면 로컬 저장소에서 git push 가 안됩니다.
왜냐면 그런 상황에서 올려버리면 코드가 꼬이기 때문에 얘가 미리 예방해주는 겁니다.
git pull 원격저장소주소 브랜치명
이러면 원격 저장소의 어떤 브랜치에서 최신 버전을 가져와 로컬 저장소에 합쳐줍니다.
비로소 내 로컬이 원격 저장소를 반영한 최신 상태가 되기 때문에 이제 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 오지게 하면 됩니다.
강의 출처