카카오테크캠퍼스 최우영님 강의를 듣고 작성하였습니다.
팀장이 할 일
1. Organization 만들기
이름은 global하게 unique(고유)해야한다.
팀원 초대하기(Member로 - Owner는 팀장만)
2. Repository 만들기
3. 이슈 설정하기
MileStone 만들기
팀 프로젝트는 Sprint 단위로 돌기때문이다.
결과 화면
이슈들이 Sprint에 지정된다.
라벨 지정하기
참조하기 좋은 블로그 : https://medium.com/@dave_lunny/sane-github-labels-c5d2e6004b63
추천 색
Status : 파스텔톤
Type, Priority : 비비드한 톤
긍정적 : 쿨톤, 부정적: 웜톤
Type: Enhancement (기능 개발)
결과
Status, Priority, Type, Domain 까지 지정하면 좋다.
이슈 템플릿 만들기
settings - Issues- Set up template 클릭
기본적으로 Bug report와 Custom - Sprint Backlog 만들기
템플릿 만들때 기본으로 라벨도 설정해주기 (Priority-Medium, Status:Available, Type:Enhancement)
팀원이 할 일
1. 이슈 잘 만들기
이슈와 Pull Request 관계
이슈와 Pull Request는 넘버링을 같이 한다. 이슈 1개를 만들고 PR을 날리면 PR은 1번이 아닌 2번으로 넘버링 된다.
2. Fork 해서 자신의 계정으로 가져오기
내 repo가 만들어진다.(여기서 PR을 보내야한다.)
3. Clone하여 작업 시작하기
clone하기
git clone [Fork한 레포지토리 URI] // 레포 파일 다운로드
cd [작업위치]
upstream 설정하기 (최근 변경 pull 하기 위함)
git remote //연결된 원격 저장소 확인 (origin만 뜰것이다.)
git remote add upstream [업스트림 repo 링크]
git remote set-url --push upstream no-push //upstream은 push되지 않도록 한다.
git remote -v //원격 저장소 자세하게 확인(현재 레포가 origin이고, upstream이 fork버튼 누른 repo인지 확인)
upstream repo : 내가 fork버튼을 눌렀던 repo이다.
그 이후 내 계정으로 생긴 repo는 origin repo이다.
작업 수행하고 commit하기
git branch features/fizzbuzz // 피처 브랜치 생성
git branch // 브랜치 생성 확인
git switch features/fizzbuzz // 피처 브랜치 이동
...
작업 수행하기
...
git status // 작업한 파일이 깃과 충돌되지않는지 상태 확인
git add [작업한 파일] // 접시에 올리기
git commit // local repo에 커밋하기
- 단위별로 작업 수행후 그때그때 커밋하기
- 작업 수행한 후에는 올린 이슈를 보면서 어느정도 되었는지 체크하기
remote repo에 올리기(push)
git checkout main // 메인 브랜치로 이동
git merge features/fizzbuzz // 머지하기
git push origin main // remote repo로 push하기
4. pull request(PR) 열기
여기서 Create pull request 누르기
PR 작성
- close(이슈 닫힘) fix(어떤 상황 해결함) resolve(이 PR이 해소) -과거,현재,미래 가능
- 옆에 라벨과 Assignees, Milestone 등은 팀장이 할당
Project란
이슈 관리 도구
new backlog ready in progress 등등 있다.
생성된 이슈를 불러와서 진행 상황을 배정할 수 있다.
프로젝트에서 이슈를 옮기면 이슈 들어가서도 확인할 수 있다.
5. PR 날린 팀원 제외한 팀원들은 코드 리뷰를 한다.
댓글도 달고,, 바꿔달라고 하기도하고,, 칭찬도 한다..
Finish your review에서 옵션을 선택할 수 있다. (Comment / Approve / Request changes)
수정할 것이 생겼다면
작업하던 브랜치로 가서 작업하고, add, commit 하면 push전까지는 PR에서 커밋으로 쌓인다.
만약 내가 어떤 팀원의 코드에 Request Changes를 줬다고 치자. 그 팀원이 바꾼후에, 나는 Files changed로 가서 그 코드를 확인하고 잘 고쳤으면 review를 쓰고 Approve하면 이제 무거운 빨간색이 아닌 연두색 Approved가 뜬다. 이제 머지해도 안무섭다
PR에 resolve #1을 쓰고 머지가 되면, 해결되었기때문에 자동으로 issue가 닫히고 프로젝트에서도 Done으로 바뀐다.
6. 작업이 잘 끝났다면
git switch main //메인 브랜치로 가기
git branch -D features/fizzbuzz //작업 브랜치 삭제하기
브랜치의 생명주기는 짧은 것이 좋다. 작업이 끝나면 삭제하기
참고사항
작업을 올리는것은 내 계정의 origin repo에, fetch는 upstream repo에서 가져오기
작업 전에 upstream repo에서 변경사항 가져오는 방법
git remote -v // origin과 upstream repo 확인하기
git fetch upstream main // 쪼개서 업데이트 가져오고 FETCH_HEAD 임시 브랜치에 담아두기 - 업데이트 확인용
git merge FETCH_HEAD // 변경사항이 로컬에 들어온다.
//git pull upstream main으로 바로 로컬로 변경사항을 가져와도 된다.
fetch와 pull 차이
fetch는 변경사항 로컬에 반영되지 않고 단지 확인용이다.
- git branch -r 로 임시 브랜치 이름 확인해서 switch하여 코드 확인하기, git log 보기 등 가능
pull은 변경사항 가져와서 로컬에 바로 적용한다.
더 자세한 내용: https://chaeyoung2.tistory.com/43
remote 브랜치 가져오는 방법
git remote update //업데이트
git branch -a //로컬, 원격 브랜치 리스트 확인
git checkout -t origin/원격브랜치명 //원격 브랜치 가져오기
//원격 브랜치로 바뀌어있다.
작업 브랜치에서 메인프랜치로 pr 날리는 방법
//main branch
git branch feat-1 //작업 브랜치 만들기
git branch //브랜치 확인
git switch feat-1 //해당 브랜치로 이동하기
//작업 수행하기
//작업 1
touch a.py
git add . //파일 추가
git commit //커밋
//작업 2
touch b.py
git add .
git commit
//작업 끝
git status //깃 충돌 여부 확인
git push origin feat-1 //작업 브랜치로 push
//깃허브에서 브랜치 생성확인, 작업한 커밋 확인
//PR 날리기