-
[first project] 팀 내 Git Workflow 정리project 2022. 4. 9. 10:10반응형
Git Workflow 모식도
1. 먼저 구조 이해하기
- UpStream : 처음 fork 해오는 저장소
- Origin : 다른 사람의 저장소를 fork 했을 때(UpStream을 fork했을 때)의 내 저장소. 즉 UpStream과 Origin은 상대적으로 결정되는 개념이며, 모두 원격(remote) 저장소다.
- Master : 배포 후 실제 사용을 위한 branch
- Dev : 개발을 위한 branch
2. 명령어 순서대로 정리하기
1) $ git clone 'UpStream의 저장소 주소'
먼저 팀장이 UpStream의 저장소를 본인의 local로 fork하지 않고 clone해온다.
*fork는 단순 github상에서 구현되는 것으로, 내 github 계정에 원본 저장소를 그대로 복사해오는 것이다. 복사해온 것이므로 원본과 연결되어 있고, 내가 코드를 수정해서 p/r했을 때 admin이 허락한다면 이를 반영할 수 있다. clone은 내 local에 새로운 저장소를 만드는 것이라 원본과 연결되지 않으며 push도 불가능하다.2) $ git checkout -b '개발용 branch명(e.g. Dev)'
팀장이 개발 용도로 사용할 Dev brach를 만든다.2-1) 개발 환경 설정
팀장이 $ npm init -> 추가로 필요한 것들을 설치한다.npm i react, axios, express와 cookie-parser, express-session, morgan, mysql, sequelize, sequelize cli, nodemon, eslint, prettier --save -dev
이때 주의할 점은 주요 모듈의 설치 명령어에서 --save-dev를 사용해야 한다는 것이다.
--save를 쓰면 package.json에 해당 파일이 저장되지 않으므로 협업 시에는 꼭 '--save-dev'로 설치해줘야 한다.
팀원들은 아래의 4번 이후 $ npm install로 설치를 완료한다.3) $ git push origin Dev
UpStream으로 해당 branch를 올려준다. 이제 팀원들과 함께 작업할 공간이 생겼다!4) Dev fork & $ git clone 'Dev branch 주소' ( 팀원들은 4번부터 시작 )
팀원들은 Dev branch를 fork한 뒤 자신의 local로 clone한다. 위에서 미리 썼던 $ npm install도 해준다.5) $ git remote add UpStream 'UpStream 주소'
git workflow를 연습할 때, clone해오던 버릇이 남아서 무심코 내 저장소의 주소를 remote해버렸다. 주소 헷갈리지 말자!6) $ git branch
$ git checkout Master
$ git checkout -b 'Dev'
자신이 어느 branch에 있는지 확인한 후에 Master branch에서 Dev branch를 만든다. 하지만 local의 Dev branch는 실제 코드작업이 진행되지 않는 백업용이다. 작업이 이뤄지는 branch는 잠시 후에...!7) $ git push origin Dev
우선 local에 만들어진 Dev branch를 origin에 push해준다.8) $ git branch
$ git checkout Dev
$ git checkout -b 'featureN'
자신이 어느 branch에 있는지 확인한 후에 꼭! Dev branch에서 하위 branch를 만든다. 드디어 나의 실제 작업 공간이 완성되었다. 여기서는 기능마다 새로운 branch를 만들어 작업할 것이므로 feature1, feature2...와 같은 순서로 생성한다.9) $ git add (본인이 작성한 파일or폴더)
$ git commit -m "커밋메시지"
$ git push origin featureN
코드 작업이 끝나면 featureN branch에서 local 코드를 push한다. 그럼 origin의 featureN branch로 코드가 업데이트된다. github로 가서 UpStream에 pull request를 날릴 차례다. feature -> Dev(UpStream)의 p/r경로를 잘 확인해야한다.10) $ git pull UpStream Dev (작업 시작하기 전에 10번, 11번 실행하자!)
팀원들이 애써 작성한 소스코드가 잘 반영되도록(conflict를 해결하자) 코드 리뷰를 거쳐 Merge한다. 그리고 UpStream의 Dev branch를 pull을 해오면 텅텅 비어 있던 local의 Dev branch가 최신화된다.11) $git push origin Dev
최신화된 local의 Dev branch를 origin으로 push하여 백업해두자. 다시 7~10번을 반복하며 작업을 계속한다.
반응형'project' 카테고리의 다른 글
[first project] sequelize로 데이터베이스 다루는 법 (0) 2022.04.10 [first project] 협업에서 필요한 데이터베이스 사용법(feat. MYSQL, Sequelize) (0) 2022.04.09 [first project] 4일차 회고 / 백엔드 기초 환경 세팅 및 DB 구축 2 (0) 2022.04.08 [first project] 3일차 회고 / 백엔드 기초 환경 세팅 및 DB 구축 1 (0) 2022.04.07 [first project] 1~2일차 회고(feat. SR의 중요성) (0) 2022.04.05