직장 생활에서 git으로 협업하는 건 필수적이라고 한다.
그래서 교육을 듣고 있는 지금 미리 프로젝트를 진행하면서 git 활용 경험을 얻어가고자 한다.
이 글에서 다루는 내용은 팀원 관점에서 작업하는 방식으로, 레포지토리 생성 과정은 생략한다.
vscode에서 작업해 보았다. test.py 파일을 생성한다.
git init

git remote add origin 레포지토리 주소
git add . (해당 폴더 파일을 모두 올릴 때) 또는 git add 파일명 (특정 파일만 올릴 때)
git commit -m 'first commit' (commit message 내용은 자유)
git config --global user.name "내이름" (선택사항)
git config --global user.email "내 이메일" (선택사항)
git push origin 로컬브랜치명:원격브랜치명

sobit 브랜치에 test.py가 잘 올라갔다.

로컬에서 수정한 내용을 원격에도 반영하고 싶다면 add, commit, push만 반복하면 된다.

이번에는 shinyoung 브랜치의 작업물을 가지고 와서 수정해 보겠습니다.

git clone "레포지토리"
또는 git clone --single-branch --branch 브랜치명 레포지토리주소

아무 것도 없는 shinyoung.py를 수정해 보겠습니다.
git add shinyoung.py
git commit -m 'first commit'
git push origin shinyoung
(로컬에서는 클론 해온 브랜치에서 작업하게 되기 때문에 shinyoung:shinyoung이 아니라 shinyoung만 적어줘도 된다.)

짜잔
📌git clone을 한 직후에는 git pull이 필요 없다. 하지만 만약 다른 팀원과 내가 같은 파일을 작업하고 있다가 다른 팀원이 먼저 push 했다고 가정해 보자. 이후 내가 그 파일을 push 하면 에러가 날 것이다. 왜냐하면 다른 팀원이 변경한 내용이 내 파일에는 반영되어 있지 않기 때문이다. 따라서 로컬 저장소의 변경 사항이 원격 저장소와 다른 경우를 고려하여 git pull을 먼저 한 뒤 git push를 해야 한다.
📌협업을 위한 git 공부는 이번에 제대로 살펴 보았는데 알고 git을 사용하다 보면 정말 협업에 특화된 시스템임을 체감할 수 있다. "아 작업하다 이런 문제가 생기면 안되니까 이렇게 만들었구나."를 생각하며 공부하면 이해가 잘 되는 듯하다. 아직 배울 게 많지만 재밌고 신기방기하구만!