협업을 위한 Github 세팅

조정훈·2024년 4월 8일

Github Repository 세팅

  1. 레파지토리 생성
  2. Issue Template 생성
  3. PR Template 생성
  4. pre-commit 생성

miniconda 설치 후 conda create 해서 새로운 가상환경 만들고 activate 한 후

mkdir ml-pipeline 과 같이 디렉토리를 하나 만들어 준다. vscode에서 폴더 열기 한 후 home/ubuntu/ml-pipeline 열기.
-> 여기서 개발 작업을 진행할 예정

git init 해주고 readme 파일에 아무거나 적어서 git add README.md
git commit -m 'first commit'

git config --global user.name 'p65454'
git config --global user.email 'p65454@gmail.com'
git config --global core.editor vim
-> 모든 커밋에 내 아이디 이름 뜨도록 해줌


1. Repository 생성

레파지토리 private으로 하나 만든 후 ssh키 만들고 등록하기(새로운 인스턴스서버를 만들었기 때문)
ssh키 생성 : ssh-keygen
/home/ubuntu/.ssh/id_rsa.pub 경로에 public키가 있을거임 (id_rsa는 private key)

cat /home/ubuntu/.ssh/id_rsa.pub

키 복사해서 github ssh키 등록하는 곳에 등록. (내 로컬에 private키가 있으니, 통신하려면 public키를 줘야함)

git branch 해보면 master로 되어있을거임.

main으로 바꾸기 : git branch -M main
새로 만든 레파지토리로 가 보면 원격저장소에 리모트하는 명령어가 있음.
-> git remote add origin {주소}.git 로 연결

git push origin main 으로 푸시



2. Issue Template 생성

방금 만든 레파지토리 -> settings -> Features의 Set up templates 클릭
-> Add template:Feature request 1개만 추가 -> Preview and edit 클릭

연필모양 클릭 -> Template content 부분에서 만들면 됨

    ## Background
     - 해당 작업을 해야하는 이유를 기술
    ## Todo
     - [ ] 해야하는 작업 1
     - [ ] 해야하는 작업 2
     
    ## See also
     - 참고할 링크

와 같이 만들어 놓으면 된다. 그 후 밑에 Issue default title = [FEAT]

close preview -> Propose changes
Commit message에 'feat - 이슈 템플릿 추가' 와 같은 맞은 이름을 넣어준다.

다 했으면 레파지토리 -> Issue 들어가서 -> New Issue 해보면 이슈템플릿이 제대로 등록된 것을 확인할 수 있다.



3. PR Template 생성

방금 했던 작업을 원격저장소에서 땡겨오기 : git pull origin main
해보면 .github/ISSUE_TEMPLATE 폴더에 feature_request.md 파일이 생긴걸 볼 수있다.

먼저 .github폴더 안에 PULL_REQUEST_TEMPLATE.md 라는 이름의 파일을 만들어준다.
이 파일 안에 마크다운 문법으로 내용을 작성해 주면 된다.

    ## Overview
     - 작업에 대한 개요
     
    ## Change Log
     - 작업 변경 점
     
    ## To Reviewer
     - 리뷰어가 참고할 사항
     
    ## Issue Tag
     - Closed | Fixed: 이슈 태그 번호
     - See also: 참고할 링크

와 같이 만들어준다. 그 후 방금 만든 파일 add, commit, push까지 진행.



4. pre-commit 생성

pre-commit : 커밋을 찍기 이전에 검사를 하고 싶을 때 쓰는 툴

설치 : pip install pre-commit

pre-commit을 적용하려면 .pre-commit-config.yaml 설정파일이 필요하다
-> pre-commit sample-config > .pre-commit-config.yaml
명령어 치면 yaml 파일이 생성된다.

이 파일에서

이 부분만 복사해서 붙여준다.(language_version은 상관없음)
black 이라는 포매터를 사용할 예정

수정 했으면 pre-commit autoupdate로 업데이트를 한번 해준다.

그 후 pre-commit install = 이 프로젝트에 pre-commit 적용되게 설정해줌



개발을 위해 브랜치 생성 git branch feat-1/add-pre-commit
(이름 짓는방식 통일해서 지키자)

git commit -m 'feat - pre-commit 추가
>
> #1'

이중줄로 내용 #1을 넣어주고 엔터치면, pre-commit 이 검사를 해준다. 만약 fail이 뜨면 다시 add부터 진행해야함.(포맷이 안맞았다는 뜻. 아마 엔터를 쳤거나 뭔가 안맞는 부분을 pre-commit이 파일을 수정해 놨을 거임)

다시 pre-commit 검사를 pass 했다면
git push origin feat-1/add-pre-commit 으로 푸시까지 진행해보자

그러면 결과창에
remote: https://github.com/p65454/ml-pipeline/pull/new/feat-1/add-pre-commit
처럼 주소가 나오는 부분이 있다. ctrl + 클릭으로 이 주소로 접속해보면

지금까지 제대로 따라왔다면 이렇게 나올 것이다


참고링크) https://brownbears.tistory.com/607



실제로 개발을 할 때 예시

New Issue


PR

assign : 나
로 설정해주고 변경점 확인해주고 merge 하면 된다.
closed로 달아주면 그 태그의 이슈를 닫아버린다


개발할 때 순서

  1. 이슈에 등록
  2. 이슈에 맞는 브랜치 생성
  3. 브랜치에서 작업
  4. PR 올리기
  5. 승인 받으면 merge
  6. 이슈 닫힘

0개의 댓글