2년 전 개발 공부를 할 때 Git의 중요성에 대해서 많이 듣곤했다. 하지만 개발을 막 시작한 입장에서 어떻게 공부를 해야할지 막막했었다. 그래서 같이 공부하는 동료들과 여러가지 상황을 가정하고 그 상황에서는 어떤 이슈가 발생하는지 하나 씩 테스트 해보고 상황 별로 정리를 해보았다.
이 공부 방법을 통해서 git을 완벽하게 이해할 수 있지는 않겠지만, git을 어떻게 사용하면 되고, 어떤 문제가 발생하고 대처할 수 있는지 맥락은 잡을 수 있을거라 생각이든다.
어렵게 접근하지말고 쉽게 접근해서 원리와 먼저 친해져보자!
git와 소스트리를 쉽게 잘 가르쳐주신 율무님의 인프런 강의 추천! (링크)
이때 커밋과 class의 내용은 의미 없는 것으로 한다
(ex : B의 커밋, 오늘은 햇반에 밥을 비벼 먹엇다)
팀 저장소(repository)에 마스터 파일이 있고, 그걸 기반으로 각자가 작업을 수행한다는 가정 하에 진행
상황 1.
내 로컬저장소에서 "부산여행 1" 브랜치 생성 후 [부산여행 가이드.class] 작업 진행.
작업이 완료되면 풀리퀘스트 요청
상황 2.
풀리퀘스트 후 a는 [부산여행 가이드.class] 의 내용이 필요하여 pull을 해야하는 상황이다.
이때 병합하여 가져오기와 그냥 가져오기 두 두가지를 진행했을 때 차이점을 본다.
상황 3.
성준이는 [부산여행 가이드.class] 을 마무리하여 풀리퀘스트까지 한 상황이다.
하지만 중간에 잘못 된 것을 확인하고 수정을 해야한다면 브랜치를 만들어 새로 수정을 할 것인지
커밋 되돌리기를 할 것인지 테스트
상황 4.
상황 3 에서 "부산여행 2" 브랜치를 만들어 [부산여행 가이드.class]을 수정을진행 하였다.
풀리퀘스트를 요청 시 충돌이 발생한다면 어떻게 할 수 있는지 테스트
상황 5.
성준이는 [부산대 투어 가이드.class]를 "부산의 대학교" 브랜치에 작업을 하고 있다.
a 씨 는 [바다이야기.class]를 "용궁" 브랜치에서 작업을 하고 있다.
b 씨는 당장에 [부산대 투어 가이드.class], [바다이야기.class] 의 내용이 필요한 상황이다.
b씨를 위해 모두가 풀리퀘스트를 요청한 뒤 팀 저장소 마스터와 병합을 하였다.
이때, 성준이와 a씨는 어떻게 class수정을 이어가야하는가?
새로운 브랜치를 만드는 것인지, 해당 브랜치 그대로 사용하는 것인지
지금보면 별거아닌 간단한 내용일 수 있지만, 처음에 git을 접하고 사용을 하려고 할 땐 많이 어려웠다. 이 내용을 동료들과 작업하는데도 2시간 정도 소요가 되었엇다. 프로젝트와 실무를 통해서도 많은 경험을 쌓을 수 있지만, 실무를 경험하기 전 공부를 하는 분들에게도 많은 도움이 될 수 있을 거 같다.
옛날에 노션에 기록한 기록물을 보고 공유하면 좋을 거 같아서 작성해 보았다.