오늘의 깃린이 일기는 깃으로 그룹 프로젝트를 하는 방법이다. "코딩알려주는누나" 라는 유튜버 분의 영상을 보고 정리하였다.
나처럼 여러 명이서 깃을 사용해서 프로젝트를 해야 하는데 어떻게 시작해야 하는 지 막막한 사람은 아래 링크로 들어가 시청하는 것을 왕 추천한다.
그룹 프로젝트에서 리더가 해야할 일들
1. 레퍼지토리 만들고 팀원 초대하기
레퍼지토리를 만든 후, Invite collaborators 버튼을 눌러 초대 화면으로 들어간다.
들어가서 Add people 을 누르고 초대할 팀원의 깃 이름을 쳐서 초대를 보내면 팀원의 메일로 팀 초대 연락이 가고 팀원이 초대에 응하면 팀원 추가가 완료된다.
2. 프로젝트 환경 세팅하기
팀원 초대까지 완료했다면 프로젝트의 환경을 세팅해주어야 한다.
- 프로젝트 파일 만들기 + 깃연동 + 깃에 파일 올리기
먼저 프로젝트를 할 파일을 만들고, 그 파일을 깃 허브에 올려주는 작업을 해야 한다.
로컬에 index.html 파일을 만들고, 터미널을 키면 브랜치가 보인다. 1개의 브랜치가 존재하고 브랜치의 이름 메인 (또는 마스터) 인 것을 확인할 수 있다.
(메인 (또는 마스터) 브랜치는는 최종 프로덕트 브랜치, 즉 유저에게 보여주는 브랜치라고 생각하면 된다)
이제 이 터미널 창에 명령어를 순서대로 입력해서 git 이 파일을 추적할 수 있도록 만든 후, 커밋을 해준다.
$ git init
$ git add .
$ git commit -m "커밋메세지"
여기까지 했으면 아래 명령어를 순서대로 입력해서 로컬 저장소에 원격 저장소인 깃을 연결하고 푸쉬해주면 된다.
$ git remote add origin [연결할 깃 url]
$ git push origin main
(또는 $ git push origin master)
(이때 깃 url 은 https://github.com/사용자깃허브이름/깃레퍼지토리이름.git 형식이다)
깃 레퍼지토리를 확인해보면 아까 만든 프로젝트 파일이 올라가 있는 것을 확인할 수 있다.
- 새로운 브랜치 만들기
이제 develop 이라는 새로운 브랜치를 만들어야 한다. main(또는 master) 브랜치는 최종 프로덕트 브랜치 즉, 유저에게 보여지는 브랜치이므로 완성된 완벽한 코드만이 올라가 있어야 하기 때문에 자유롭게 개발할 수 있는 연습장 같은 브랜치를 만드는 것이다. develop 브랜치의 코드가 완벽해졌을 때 main(또는 master) 브랜치로 올려 합쳐주면 된다.
아래 명령어를 실행해서 develop 브랜치를 만들고 만든 브랜치를 깃에 올려주는 작업을 한다.
$ git check -b develop
$ git push --set-upstream origin develop
작업을 마치면 깃에 develop 이라는 새로운 브랜치가 생긴 것을 확인할 수 있다.
- main(또는 master) 브랜치 보호하기
main(또는 master) 브랜치는 함부로 수정하고 push 하면 안되는 보호되어야 하는 브랜치이기 때문에 develope 브랜치를 거쳐야만 갈 수 있도록 보호 설정을 해줘야 한다.
깃 레퍼지토리에서 Settings -> Branches(화면 왼쪽에 있음) -> Add branch protection rule 을 눌러 들어간다.
들어가면 아래와 같은 화면이 나타나는데 branch name pattern 에 main(또는 master) 을 써준다. 사진에 있는 옵션 두 가지를 선택하고 저장하면 끝이다.
Require a pull request before merging
-> 모두가 코드에 대해 동의를 한 후에 main(또는 master) 로 올라갈 수 있도록 함
Lock branch
-> main(또는 master) 브랜치를 read-only 로 만들어서 push 할 수 없도록 함
3. 프로젝트 보드 만들기
Projects -> Link a project -> create new project -> Board
(어떤 형식으로 만들지는 상관 없지만 나는 영상에 나온대로 보드 타입으로 만들었다)
이 보드에서 해야할 일들을 추가하고 팀원에게 할당도 할 수 있으며, 해야할 일들의 진행상황을 관리할 수 있다.
+Add item 을 눌러 추가하고 드래그를 이용해서 각 칸으로 옮길 수 있다. (feature-A 는 내가 미리 만들어놓은 할 일이다)
feature-A 를 누르면 아래와 같은 창이 뜬다. 여기서 convert to issue 를 눌러 이슈로 넘어가면 된다.
이슈를 만드는 이유는 라벨을 사용해서 정리하기 용이하고, 이슈로부터 새로운 브랜치를 만들어서 만들어야 하는 것과 관련된 브랜치를 따로 만들어서 개발할 수 있기 때문이다.
(feature A 라는 것은 branch A 로 feature B 라는 것은 branch B 로 관리함)
이슈로부터 나온 새로운 브랜치는 일을 맡은 개개인의 연습장 같은 브랜치로 사용되고, 기능 개발이 완료되면 develop 브랜치로 올리고 develop 브랜치의 개발이 완료되면 또 다시 main(또는 master) 브랜치로 올려서 사용하는 것이다.
(branch A -> develop -> main(또는 master) 순으로 올리면서 개발)
convert to issue 를 누르면 아래와 같은 화면이 뜨는데 여기서 Create a branch 를 눌러 새로운 브랜치를 만들어줄 수 있다. 새로운 브랜치를 만들 때 브랜치 소스는 develop 으로 바꾸어서 만들어주면 된다.
그리고 내 로컬 작업 환경으로 돌아가서 아래 명령어를 사용해 새로 만든 브랜치를 로컬로 가져온 후, 작업할 브랜치를 바꾸고 작업해주면 된다.
$ git fetch origin
$ git checkout [새로운브랜치이름]
여기까지가 리더가 해야할 역할들이고 조만간 후속편으로 팀원들은 어떤 일들을 해야하는지 정리해 보겠다!
- 끝 - ꙳꒰•◡̎•꒱꙳
📖 References 📖
https://www.youtube.com/watch?v=tkkbYCajCjM