April 14, 2023
미션을 시작, 개발 환경을 구축, 1단계 미션 완료, push를 보내는 단계.
터미널에 아래 명령어 입력
git clone -b {본인_아이디} --single-branch https://github.com/{본인_아이디}/{저장소 아이디}
ex) git clone -b highjune --single-branch https://github.com/highjune/java-racingcarclone한 폴더로 이동하는 방법
cd {저장소 아이디}
ex) cd java-racingcarcopy the main branch only 를 체크했다면 main브랜치만 받아오게 된다. 이 경우에는 github 저장소에서 나의 아이디(highjune)로 branch를 생성해준다.현재 터미널에서 git remote -v 라고 치면 아래와 같이 뜸
origin https://github.com/highjune/java-racingcar (fetch)
origin https://github.com/highjune/java-racingcar (push)터미널 명령
git checkout -b 브랜치이름
ex) git checkout -b step1기능 구현을 완료한 후 로컬 저장소에 변경된 부분을 반영하기 위해 add, commit 명령을 사용한다.
git status // 변경된 파일 확인
git add -A(또는 .) // 변경된 전체 파일을 한번에 반영
git commit -m "메시지" // 작업한 내용을 메시지에 기록로컬에서 commit 명령을 실행하면 로컬 저장소에만 반영되고, 원격 github.com의 저장소에는 반영되지 않는다.
git push origin 브랜치이름
ex) git push origin step1pull request를 통해 코드 리뷰 요청을 한 후 피드백을 받고, 피드백을 반영하는 과정
pull request는 original 저장소(next-step의 저장소)의 브랜치(자신의 아이디 = highjune)와 앞 단계에서 생성한 브랜치 이름(앞 단계의 예에서는 step1)을 기준으로 한다.
ex) 미션을 진행한 javajigi/java-racingcar step1 브랜치 => nextstep/java-racingcar javajigi 브랜치로 pull request를 보낸다.리뷰 부탁드립니다. 요청앞서 보낸 pull request가 통합(merge)되지 않은 상태이기 때문에 같은 pull request를 재활용한다.
git status // 변경된 파일 확인
git add -A(또는 .) // 변경된 전체 파일을 한번에 반영
git commit -m "메시지" // 작업한 내용을 메시지에 기록git push origin 브랜치이름
ex) git push origin step1리뷰 요청을 보낸 후 pull request가 next-step으로 통합(merge)된 이후의 과정
현재 미션을 완료했기 때문에 미션을 진행한 브랜치를 삭제하고 다음 미션을 위한 새로운 브랜치를 생성해야 한다.
git checkout 본인_아이디
git branch -D 삭제할_브랜치이름
ex) git checkout highjune
ex) git branch -D step1git remote add- 명령은 최초 1회만 진행하면 된다.
git remote add {저장소_별칭} base_저장소_url
ex) git remote add upstream https://github.com/next-step/java-racingcar.git
// 위와 같이 next-step 저장소를 추가한 후 전체 remote 저장소 목록을 본다.
git remote -vgit remote -v 의 결과는.
origin https://github.com/highjune/java-racingcar (fetch)
origin https://github.com/highjune/java-racingcar (push)
upstream https://github.com/next-step/java-racingcar.git (fetch)
upstream https://github.com/next-step/java-racingcar.git (push)앞 단계에서 next-step 저장소에 이름을 부여했다면 이번 단계는 fetch 명령으로 동기화하고 싶은 next-step 저장소의 브랜치를 가져오기 해야 한다.
git fetch upstream {본인 아이디}
ex) git fetch upstream highjunerebase 명령을 실행해 next-step 저장소와 로컬 저장소의 브랜치를 동기화한다.
git rebase upstream/본인_아이디
ex) git rebase upstream/highjune다음 단계는 코드리뷰 요청 1단계의 4번 항목의 checkout 명령으로 새로운 브랜치를 생성한다
git checkout -b 브랜치이름
ex) git checkout -b step2Q) next-step 저장소와 rebase를 하지 않은 상태에서 브랜치를 생성했더니 충돌이 발생하고 있어요. 충돌을 해결하려면 어떻게 해야 하나요?
git checkout 본인_아이디(예: git checkout javajigi) 명령을 실행해 계정 브랜치로 이동한다.
git reset --hard upstream/본인_아이디(예: git reset --hard upstream/javajigi)
git checkout 기능_브랜치(예: git checkout step2)
git merge 본인_아이디(예: git merge javajigi)