티스토리 뷰

1단계 - 브랜치 생성 및 Fork 그리고 Local로 복사

 

1. 원본 프로젝트에 나의 브랜치 생성 및 확인

1-1. next-step/java-lotto-pro 저장소에 브랜치 생성

[미션 시작] 버튼을 누르면 자동으로 next-step/java-lotto-pro 저장소에 나의 브랜치가 생성된다.

1-2. 브랜치 확인

next-step/java-lotto-pro 저장소에서 나의 브랜치를 확인할 수 있다.

 

2. Fork 해서 나의 GitHub로 프로젝트 가져오기

우측 상단에 [Fork] 버튼을 눌러서 나의 github로 프로젝트를 가져온다.

* Copy the main branch only 체크 해제

 

3. 나의 GitHub에서 Local로 프로젝트를 가져온 후 기능 구현을 위한 브랜치 생성

나의 github 저장소에 fork한 프로젝트의 URL

 

3-1. Fork한 프로젝트 URL을 이용해서 Local에 나의 브랜치만 다운로드 한다.

git clone -b {본인_아이디} --single-branch https://github.com/{본인_아이디}/{저장소_아이디}
ex) git clone -b seogineer --single-branch https://github.com/seogineer/java-lotto-pro.git

 

 

3-2. 작업 브랜치 생성

cd {다운로드한_프로젝트_이름}
git checkout -b {브랜치_이름}
ex) git checkout -b step1

 

4. 인텔리제이로 프로젝트 가져오기 그리고 요구 사항에 따라 소스 작성 후 add, commit, push

[Open] 버튼으로 프로젝트를 인텔리제이로 가지고 와서 코드를 작성한다.

4-1. github에 코드 업로드 하기

git status // 변경된 파일 확인
git add -A(또는 .) // 변경된 전체 파일을 한번에 반영
git commit -m "메시지" // 작업한 내용을 메시지에 기록
git push origin {브랜치이름} // 나의 github 저장소에 변경한 내용을 업로드
ex) git push origin step1

 

 

2단계 - PR(pull request) 보내기와 리뷰 요청 하기

 

1. pull request 보내기

작업 브랜치(step1)를 선택한 후 Contribute - Open pull request로 PR을 보낸다.

* 본인의 아이디로 만든 브랜치가 아니라 작업 브랜치를 선택하고 pull request를 진행한다!!!

 

적절한 제목과 내용 입력 후 [Create pull request]

* 왼쪽 base: main를 반드시 본인 브랜치(base: seogineer)로 바꿔야 한다.

 

2. 리뷰 요청 하기

우아한테크캠프 Pro 강의 페이지 우측 상단에 [리뷰 요청] 버튼을 누르면 리뷰 요청 팝업이 나온다.
리뷰 요청 팝업에서 [리뷰 요청] 버튼을 클릭한다.
리뷰 요청을 하면 slack으로 리뷰 요청 알림이 보내진다.

 

* 만약 pull request가 approve되지 않고 수정 요청을 받았다면, 코드를 수정한 다음 add, commit, push를 한다. 그리고 문서 우측 상단에 [리뷰 요청] 버튼을 다시 누른다.

 

3. merge 방식

merge 방식 설명
Create a merge commit 모든 작업 commit을 새로운 commit을 만들어서 main 브랜치에 병합. (parent 2개)
Squash and merge 모든 작업 commit을 하나의 commit으로 합해서 main 브랜치에 병합. (parent 1개)
Rebase and merge 모든 작업 commit이 merge commit 없이 개별적으로 main 브랜치에 병합. (parent 1개)
하나의 브랜치에서 작업한 것 처럼 보임.

 

 

3단계 - 작업 브랜치 삭제 및 merge된 저장소와 local 저장소 동기화

 

1. 브랜치 변경 및 작업 브랜치 삭제

git checkout {본인_아이디}
git branch -D {삭제할_브랜치이름}
ex) git checkout seogineer
ex) git branch -D step1

 

2. Merge된 next-step 저장소와 Local 저장소 동기화

2-1. upstream이라는 이름으로 remote 저장소 추가

git remote add {저장소_별칭} {base_저장소_url}
ex) git remote add upstream https://github.com/next-step/java-lotto-pro.git
// 위와 같이 next-step 저장소를 추가한 후 전체 remote 저장소 목록을 본다.
git remote -v

git remote -v 명령어를 실행한 결과

 

2-2. next-step 저장소에서 내 브랜치 가져오기

git fetch {저장소_별칭} {본인_아이디}
ex) git fetch upstream seogineer

git fetch upstream seogineer 명령어를 실행한 결과

 

remotes/upstream/seogineer 브랜치 생성 확인

git branch -a

git branch -a 명령어를 실행한 결과

 

2-3. next-step 저장소와 local 저장소 동기화

git rebase upstream/{본인_아이디}
ex) git rebase upstream/seogineer

git rebase upstream/seogineer 명령어를 실행한 결과

 

3. 새로운 미션을 위한 브랜치 생성

git checkout -b 브랜치이름
ex) git checkout -b step2

git checkout -b step2 명령어를 실행한 결과

 

 

* (rebase를 하지 않은 경우) 충돌 발생시 해결 방법

git checkout {본인_아이디}
git reset --hard upstream/{본인_아이디}
git checkout {기능_브랜치}
git merge {본인_아이디}

위 명령 실행 후 충돌이 발생한 코드로 가서 충돌을 해결한 후 다시 add, commit, push 후 리뷰 요청을 한다.

 

 

참고

GitHub의 Merge, Squash and Merge, Rebase and Merge 정확히 이해하기

[Git] Merge 이해하기 (Merge / Squash and Merge / Rebase and Merge)

'Git' 카테고리의 다른 글

우아한테크캠프 Pro 5기 - Commit Message Conventions  (0) 2022.10.28
fatal: remote origin already exists.  (0) 2021.04.14
Git 기본 사용법  (0) 2020.12.25
댓글
Total
Today
Yesterday
링크
Apple 2023 맥북 프로 14 M3, 스페이스 그레이, M3 8코어, 10코어 GPU, 512GB, 8GB, 한글