첫 프로젝트를 진행했을 때, GitHub을 통해 협업을 진행하고자 했지만 많은 어려움을 겪었었다.
GitHub을 통해 쉽게 이용하여 협업 과정에서 편리함을 느꼈어야 되는데, 오히려 GitHub에 이리저리 끌려다녔다.
다시 기본 협업 워크플로우를 공부하기 위해 테스트 Repository를 파서 공부해 보았다.
팀장 : 협업 저장소 Repo 만들기, 초기 단계 세팅.

우선, 내가 팀장이라고 가정을 하고 기존에 있던 협업공간에 연습저장소를 만들었다. 그 이후에 워크플로우를 정리해 보았다. 크게 브랜치는 세 가지로 구성해 보기로 가정했다.
main : 실제 서비스에 배포되는 안정적인 코드
develop : 다음 릴리스를 위한 개발 코드 통합
feature/<기능명> : 개별 기능 또는 작업을 위한 브랜치 (*임의상 각자의 이니셜을 딴 branch로 생성했다)

- GitHub에서 협업 저장소 생성 (README 파일 포함, initial commit 설정)
- 로컬 작업 디렉터리 생성 및 이동
- 로컬 저장소 초기화 (git init)
- 원격 저장소 연결 (git remote add origin <원격 저장소 URL>)
- 원격 저장소의 내용 가져오기 (git fetch origin)
- 로컬 main 브랜치를 원격의 main 브랜치로 설정 및 연결 (git branch -M main)
- 원격 저장소의 내용을 로컬로 가져와 병합 (git pull origin main) -> README 파일 가져온다!
협업 저장소 세팅 완료!
추가로 우리 프로젝트에 필요한 의존성들을 설계과정에서 정한 이후, 기본 설정을 하고 develop 브랜치에 추가하여 올렸다. main 브랜치에서 develop 브랜치 생성:
git checkout main
git pull origin main
git checkout -b develop
//의존성 세팅 관련 추가
git add .
git commit -m "초기 develop 브랜치 설정 및 의존성 추가"
git push -u origin develop
이제 우리 팀원들이 수행해야 할 플로우를 정리해 보자.
1. 팀원들 : 내 저장소 clone 하기
빈 디렉터리 생성
터미널로 빈 디렉터리에서 git clone <<원격 저장소 URL> . ( .은 현재 디렉토리에 클론을 위해 붙여야 된다)
2. develop 브랜치 가져오기
모든 팀원:
git fetch origin -> 원격 상태 가져옴
git switch develop -> 디벨롭 브랜치로 전환할게요 !
git pull origin develop -> 디벨롭 브랜치에 있는 거 가져올게요!
---------------------------------------------------------
git switch gw ->개인 브랜치 전환!
git merge develop -> develop에 완성된 코드를 내 브랜치에 가지고 와서 작업하고 싶어!
3. 개인 작업 브랜치 생성 (각 팀원)
- 각 팀원은 develop 브랜치에서 자신의 브랜치를 생성 후 전환
- 원격에 내 로컬 브랜치를 그대로 연결하고 저장
광우 :
git checkout -b gw
git push -u origin gw
현수 :
git checkout -b hs
git push -u origin hs
현우 :
git checkout -b hw
git push -u origin hw
4. 개인 브랜치에서 작업
- 코드 작성 및 변경
- 변경사항 커밋:
- 정기적으로 원격 저장소에 푸시:
5. develop 브랜치로 병합 (Pull Request)
작업이 완료되면:
- GitHub에서 Pull Request 생성
-base: develop, compare: [본인 브랜치명]

2. 코드 병합 승인 이후 병합 완료.

6. 로컬 develop 브랜치 업데이트
*모든 팀원: 2번과 동일
git fetch origin -> 원격 상태 가져옴
git switch develop -> 디벨롭 브랜치로 전환할게요 !
git pull origin develop -> 디벨롭 브랜치에 있는 거 가져올게요!
---------------------------------------------------------
git switch gw ->개인 브랜치 전환!
git merge develop -> develop에 완성된 코드를 내 브랜치에 가지고 와서 작업하고 싶어!
7. 새로운 작업 시작 시
2~6단계 반복!
느낀 점 :
이번 연습을 통해 얻은 깨달음은 정말 도움이 되었다. 프로젝트 초기의 철저한 설계와 개발 환경 구축이 얼마나 중요한지 다시 한번 실감하게 되었다. 또한, *정기적인 커밋, PR, 코드 리뷰를 습관화하면 개발 과정에 엄청난 도움이 될 것이라는 확신을 갖게 되었다.
엄청난 도움이 될 거란 근거는 다음과 같다.
- 정기적인 커밋: 작업의 진행 상황을 추적하고, 필요시 이전 버전으로의 롤백이 용이.
- 풀 리퀘스트: 코드 변경사항을 체계적으로 관리하고, 팀 내 협업의 소통의 편리함.
- 코드 리뷰: 버그를 조기에 발견하고, 코드 품질을 향상하며, 팀원 간 지식 공유를 활성화.
* GitHub은 젓가락 같다. 처음에 쓰기는 꽤나 어렵지만, 사용하는 법을 잘 배우면 정말 편한..ㅎ
(하하 ㅎ 웃어요 ㅎ 웃어.)
GitHub like Chopstics….

'Git' 카테고리의 다른 글
Commit은 어느 시점, 어느 단위로 쪼개는 게 좋을까? (0) | 2025.03.31 |
---|---|
[GitHub]Issue 및 Pr Template (4) | 2024.09.02 |
[GitHub] 브랜치 보호를 위한 Ruleset (0) | 2024.08.17 |