카카오테크캠퍼스 최우영님 강의를 듣고 작성하였습니다.
팀장이 할 일
1. Organization 만들기
이름은 global하게 unique(고유)해야한다.
팀원 초대하기(Member로 - Owner는 팀장만)
2. Repository 만들기
3. 이슈 설정하기
MileStone 만들기
팀 프로젝트는 Sprint 단위로 돌기때문이다.
결과 화면
이슈들이 Sprint에 지정된다.
라벨 지정하기
참조하기 좋은 블로그 : https://medium.com/@dave_lunny/sane-github-labels-c5d2e6004b63
Sane GitHub Labels
TLDR; the default GitHub labels kinda suck; use a sane labelling scheme instead; and use git-labelmaker to simplify GitHub label editing. If you work for a company that manages any part of their…
medium.com
추천 색
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이다.
[GitHub] 개발을 위한 Branch 관리 (Upstream, Origin, Local repository)
Branch 관리에 대한 포스팅이다. 아직 부족한 점이 많은데, 새로 알게되거나 수정해야할 내용이 있으면 업데이트할 예정. 현재 내가 어떤 식으로 개발을 하고 있는지에 대한 내용으로 이해하면 될
bioinfoblog.tistory.com
작업 수행하고 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 날리기