github pr template // upstream repo, origin repo, local repo

woolee의 기록보관소·2023년 4월 9일
0

개발환경

목록 보기
17/17

github PR 템플릿 만들고 적용하기

단일 pr template

  • root 디렉토리에서 pull_request_template.md 파일 만들고 양식 작성
  • 템플릿을 숨기고 싶으면 /.github 디렉토리 만들고 그 안에 pull_request_template.md 파일 생성

반드시 pull_request_template.md 이라는 이름으로 파일을 만들어야 한다.

멀티 pr template

/.github/PULL_REQUEST_TEMPLATE 디렉토리를 만들고 이 안에 템플릿을 만들면 된다. 이름은 자유롭게 작성 가능.

예를 들어 /.github/PULL_REQEUST_TEMPLATE/pr-template-henry.md 이런 식으로

pr template 자동 적용

단일 템플릿은 pr 생성시 자동으로 적용된다.

멀티 템플릿을 pr 생성 시 거의 자동으로 적용하려면

&template=생성한템플릿이름.md를 붙여주면 된다.

예를 들어

이런 식으로 쿼리를 붙인 걸 링크로 연결해주면 된다.

origin repo ⇒ local repo

(in local repo)

origin repo를 local로 가져오고 개인 브랜치를 생성해준다

  • git clone origin repo
  • git switch -c 개인브랜치 (in main 브랜치)
  • git switch -c 개인브랜치-week{n} (in 개인 브랜치)

처음이라면 local repo에서 만든 브랜치/week 브랜치를 각각 origin에도 반영해야 하므로
git push origin 개인브랜치
git push origin 개인브랜치-week{n}

개인 week 브랜치에서 작업 후
(git add, git commit, git push origin 개인브랜치-week{n})

(in origin repo)

Pull Request (origin/개인브랜치-week{n}origin/개인브랜치)

멘토로부터 코드리뷰를 받고 개인 브랜치로 merged까지 됐다면

(in local repo)

local repo의 개인 브랜치로 pull 당겨오고
새로운 개인-week{n+1} 브랜치 생성해서 같은 과정 반복

(in 개인-week{n} 브랜치) git switch 개인브랜치
(in 개인 브랜치) git pull origin 개인브랜치
(in 개인 브랜치) git switch -c 개인브랜치-week{n+1}
(in 개인-week 브랜치) git push origin 개인브랜치-week{n+1}

upstream repo ⇒ forked repo(origin repo) ⇒ local repo

fork한 repo를 최신으로 동기화해야 할 때
(지속적인 contribution, 수정하려고 fork 해온 원본 repo에서 업데이트 된 부분 받아올 때 등등)

(in local repo)

동기화해오고 싶은 원본 repo를 upstream이라는 이름으로 추가해준다.

git remote add upstream {동기화해오고 싶은 원본 repo}

upstream repo에서 최신 업데이트 내용을 가져온다.
git fetch upstream

upstream repo의 main 브랜치(혹은 원하는 브랜치)로부터 나의 local repo로 merge 한다.

git switch {원하는 브랜치}
git merge upstream/main(혹은 원하는 브랜치)

이제 반영된 걸 origin에도 적용해주면 된다.

git push origin main


물론 merge가 아니라 rebase를 해줘도 된다.

git rebase upstream/main

rebase의 경우 --force로 push 해야 할 수도 있다는데 위험하지 않을까?

리모트 저장소에 푸시한 커밋은 리베이스하지 말 것
++origin repo에 이미 push했던 작업물(commit)을 rebase하지 말 것. rebase는 origin repo의 커밋 히스토리를 어지럽히지 않고 local repo의 작업물을 origin repo의 최신 변경 사항으로 업데이트하려 할 때 바람직한 merge 전략이라고 한다.

git rebase가 이해가 어려우면 아래 링크 읽어보기
Git | Git Rebase 제대로 알고 쓰기 (feat. cherry-pick)

참고

Creating a pull request template for your repository

[Git] Fork 한 repository 최신으로 동기화하기
[GitHub] fork repository 최신 버전으로 유지하기
How do I update or sync a forked repository on GitHub?
How to update a forked repo with git rebase

profile
https://medium.com/@wooleejaan

0개의 댓글