Git으로 협업하기(팀원 관점)

신영·2024년 4월 20일

AI Study

목록 보기
21/44

직장 생활에서 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 로컬브랜치명:원격브랜치명
  • :를 기준으로 왼쪽은 로컬 저장소 브랜치명, 오른쪽은 원격 저장소 브랜치명
  • 로컬 저장소 브랜치명은 git branch 명령어로 확인 가능하다.
  • 원격 저장소 브랜치명은 있는 브랜치라면 거기로 올라가고 없다면 자동 생성된다.

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

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

✅ 레포지토리의 작업물을 가져와서 수정하기

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

git clone "레포지토리" 
또는 git clone --single-branch --branch 브랜치명 레포지토리주소
  • 이 경우 git init과 git remote add origin 레포지토리 명령은 자동 실행된 것과 마찬가지가 되어 따로 실행해 줄 필요가 없다.
  • 이렇게 하면 레포지토리의 주소에 맞는 폴더 이름이 새로운 로컬 폴더가 생기게 됩니다. 오호 참으로 신기해요!

아무 것도 없는 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을 사용하다 보면 정말 협업에 특화된 시스템임을 체감할 수 있다. "아 작업하다 이런 문제가 생기면 안되니까 이렇게 만들었구나."를 생각하며 공부하면 이해가 잘 되는 듯하다. 아직 배울 게 많지만 재밌고 신기방기하구만!

profile
Human×Tech Bridge Builder | EdTech | AI Service Developer

0개의 댓글