개발공부 시 Git 협업 연습 방법 공유

Castle_Junny·2023년 3월 13일
0
post-thumbnail

서론

2년 전 개발 공부를 할 때 Git의 중요성에 대해서 많이 듣곤했다. 하지만 개발을 막 시작한 입장에서 어떻게 공부를 해야할지 막막했었다. 그래서 같이 공부하는 동료들과 여러가지 상황을 가정하고 그 상황에서는 어떤 이슈가 발생하는지 하나 씩 테스트 해보고 상황 별로 정리를 해보았다.

이 공부 방법을 통해서 git을 완벽하게 이해할 수 있지는 않겠지만, git을 어떻게 사용하면 되고, 어떤 문제가 발생하고 대처할 수 있는지 맥락은 잡을 수 있을거라 생각이든다.

어렵게 접근하지말고 쉽게 접근해서 원리와 먼저 친해져보자!

git와 소스트리를 쉽게 잘 가르쳐주신 율무님의 인프런 강의 추천! (링크)

1. 계획

  1. 간단한 test용 파일을 git에 올린다. (db연결 없는 자바 기본 파일)
  2. 각자 포크(fork)해서 각자 브랜치(branch)를 만들어본다.
    1. 이때 커밋과 class의 내용은 의미 없는 것으로 한다

      (ex : B의 커밋, 오늘은 햇반에 밥을 비벼 먹엇다)

  3. 여러가지 상황에 맞게끔 테스트를 진행한다.
    • 발생 가능한 상황을 미리 정하여 테스트 진행

2. 발생 가능한 상황 정리

< 전재 조건 >

팀 저장소(repository)에 마스터 파일이 있고, 그걸 기반으로 각자가 작업을 수행한다는 가정 하에 진행

상황 1.

내 로컬저장소에서 "부산여행 1" 브랜치 생성 후 [부산여행 가이드.class] 작업 진행.
작업이 완료되면 풀리퀘스트 요청

상황 2.

풀리퀘스트 후 a는 [부산여행 가이드.class] 의 내용이 필요하여 pull을 해야하는 상황이다.
이때 병합하여 가져오기와 그냥 가져오기 두 두가지를 진행했을 때 차이점을 본다.

상황 3.

성준이는 [부산여행 가이드.class] 을 마무리하여 풀리퀘스트까지 한 상황이다.
하지만 중간에 잘못 된 것을 확인하고 수정을 해야한다면 브랜치를 만들어 새로 수정을 할 것인지
커밋 되돌리기를 할 것인지 테스트

상황 4.

상황 3 에서 "부산여행 2" 브랜치를 만들어 [부산여행 가이드.class]을 수정을진행 하였다.
풀리퀘스트를 요청 시 충돌이 발생한다면 어떻게 할 수 있는지 테스트

상황 5.

성준이는 [부산대 투어 가이드.class]를 "부산의 대학교" 브랜치에 작업을 하고 있다.
a 씨 는 [바다이야기.class]를 "용궁" 브랜치에서 작업을 하고 있다.
b 씨는 당장에 [부산대 투어 가이드.class], [바다이야기.class] 의 내용이 필요한 상황이다.
b씨를 위해 모두가 풀리퀘스트를 요청한 뒤 팀 저장소 마스터와 병합을 하였다.
이때, 성준이와 a씨는 어떻게 class수정을 이어가야하는가?
새로운 브랜치를 만드는 것인지, 해당 브랜치 그대로 사용하는 것인지

3. 결과

4. 마무리

지금보면 별거아닌 간단한 내용일 수 있지만, 처음에 git을 접하고 사용을 하려고 할 땐 많이 어려웠다. 이 내용을 동료들과 작업하는데도 2시간 정도 소요가 되었엇다. 프로젝트와 실무를 통해서도 많은 경험을 쌓을 수 있지만, 실무를 경험하기 전 공부를 하는 분들에게도 많은 도움이 될 수 있을 거 같다.

옛날에 노션에 기록한 기록물을 보고 공유하면 좋을 거 같아서 작성해 보았다.

0개의 댓글