3주간의 우아한테크코스 4기 프리코스 과정이 끝났습니다.
프리코스를 진행하며 학습한 내용들을 정리하고,
혹은 놓쳤던 부분에 대해 추가로 공부하여 보완한 내용들을 포스팅해보고자 합니다.
과제 진행 및 제출 방법은 프리코스 과제 제출 문서 를 참고한다.
우아한테크코스 프리코스는 Github를 통해 진행되었습니다.
과제 저장소를 fork하고, 본인의 branch를 생성한 뒤, push하고 PR을 보내야 합니다.
이는 우아한테크캠프 Pro 프리코스와, Nextstep의 TDD 수업 방식과 거의 흡사합니다.
다른 점이 있다면 하나의 레포지토리에서 여러 개의 미션을 수행하지 않기 때문에
rebase를 하지 않아도 돼서 조금 더 간단하다는 점이 있습니다.
이 과정에 대해 기록해보고자 합니다.
1. Flow
큰 그림을 먼저 소개합니다.
1) 우아한테크코스 깃허브 계정의 야구게임 저장소 주소를 제공받습니다.
2) 우테코의 야구게임 저장소를, 나의 깃허브 계정으로 Fork합니다.
3) Fork한 야구게임을 Local에 clone합니다.
4) Local에서 브랜치를 새로 생성합니다.
5) 로컬에서 작업을 하고 커밋을 합니다.
6) 나의 깃허브 계정 야구게임 저장소에 4에서 만든 브랜치를 push 합니다.
7) 나의 깃허브 계정 야구게임 저장소의 4번에서 만든 브랜치를 우테코로 PR 요청합니다.
여기까지가 완료입니다. 그럼 하나씩 살펴볼까요?
2. Fork
Fork에 대해서는 깃허브 공식 문서를 참조하시면 도움이 될 것 같습니다.
문서에서 설명하는 내용중, 레포지토리 복제와 비슷하지만 중요한 차이점 2가지를 설명합니다.
You can use a pull request to suggest changes from your user-owned fork
to the original repository, also known as the upstream repository.
You can bring changes from the upstream repository to your local fork
by synchronizing your fork with the upstream repository.
복제는 원본 저장소와 연결되지 않습니다. 그러나 Fork는 연결되어 있습니다.
그래서 위에서 설명하는 중대한 차이점이 발생하는데요,
먼저, PR을 이용해 Fork한 레포지토리에서 만든 수정사항을 원본 저장소에 반영할 수 있습니다.
원본 저장소를 original repository 또는 upstream repository라고 표현했음을 알 수 있습니다.
또한 원본 저장소에 반영된 수정사항을 local fork에도 업데이트하여 반영할 수 있습니다.
즉, 협업을 위해서 반드시 필요한 과정이라고 할 수 있겠습니다.
3. Clone & Checkout
나의 깃허브 계정으로 가서 Fork된 레포지토리를 확인합니다.
forked from ... 으로 upstream repository가 명시되어있음을 확인할 수 있습니다.
Code 버튼을 누르고 Copy 모양 버튼을 눌러 Clone을 위한 주소를 확보합니다.
그리고 이하 명령어를 이용해서 clone 후, 브랜치를 새로 생성합니다.
git clone https://github.com/HJ-Rich/java-baseball-precourse.git
cd java-baseball-precourse
git checkout -b hj-rich
여기까지 완료되었다면 작업을 시작할 준비가 완료된 겁니다.
4. Commit and Push
README.md 파일에 정의한 기능 목록 단위로 커밋을 진행합니다.
커밋 메시지 컨벤션에 관련해서는 이전 포스트를 참고해주세요.
커밋을 위해서는 수정 내역을들 staging으로 올려야 합니다.
이를 위해서 git add . 명령어를 수행하고, 그 뒤 커밋 명령어를 수행합니다.
예를 들면 아래와 같은 커밋이 있을 수 있겠습니다.
git add .
git commit -m "feat(application): generate random answer"
여기까지의 내용은 아직 로컬에만 반영된 겁니다.
이제 이 내용을 나의 깃허브 계정에 포크된 레포지토리에 올릴 겁니다.
나의 깃허브 계정 포크된 레포지토리에는 신규 생성한 브랜치는 아직 없습니다.
이 브랜치 자체가 신규로 저장되는 겁니다.
git push origin hj-rich
origin 저장소에 push 하되, hj-rich 라는 브랜치로 push하는 겁니다.
이미 hj-rich 라는 브랜치가 나의 깃허브 계정 야구게임 레포지토리에 존재해서,
hj-rich-test 라는 브랜치로 push를 해봤습니다.
여기까지 완료되었다면, upstream repository에 연결되어 있는,
나의 원격 저장소에까지는 작업내용이 올라간 겁니다.
그럼 이제 이 내용을 upstream repository에 반영해달라는 요청인 PR을 진행해보겠습니다.
5. Pull Request
나의 깃허브 원격 저장소에서 Pull Requests를 누르고 New pull request를 누릅니다.
그러면 나의 깃허브 원격 저장소에서, upstream repository인 woowacourse로 이동이 되며,
저장소와 브랜치를 선택하는 화면이 나옵니다.
왼쪽은 반영이 될 목적지에 해당하는 원격 저장소와 브랜치,
오른쪽은 반영하고 싶은 내용을 작업해둔 원격 저장소와 브랜치를 선택합니다.
앞서 hj-rich 라는 브랜치를 로컬에서 생성하고, 작업한 뒤, push했기 때문에,
upstream repository에 반영할 브랜치를 hj-rich 브랜치로 선택해줘야 합니다.
6. 지원 플랫폼에 제출
여기까지 완료하셨다면 마지막 한 단계가 남았습니다.
우아한테크코스 지원 플랫폼에서 PR 주소, 깃허브 계정, 학습 소감을 적어 최종 제출하는 것입니다.
upstream repository의 Pull requests를 눌러보면,
어떤 반영 요청들이 있었는지 목록을 확인할 수 있습니다.
그중에 자신이 보낸 PR의 주소를 확인하여 첨부해야 합니다.
7. 소감
현재 재직중인 회사는 형상관리 툴을 SVN을 사용하고,
아직은 별도의 코드리뷰 문화가 정착되지 못했습니다.
그래서 Git이나 Github 등을 이용한 협업을 아직 실무 레벨에서 경험해보지 못했는데,
다소간 연습이 된 것 같아 감사한 시간이었습니다.
출처
https://github.com/woowacourse/java-baseball-precourse
https://apply.techcourse.co.kr/
'우아한테크코스 4기' 카테고리의 다른 글
우아한테크코스 웹 백엔드 4기, 화음을 좋아하는 리차드 (0) | 2022.01.20 |
---|---|
우아한테크코스 4기 프리코스 후기 (4) - README.md 작성 (markdown) (0) | 2021.12.17 |
우아한테크코스 4기 프리코스 후기 (2) - Commit Log 컨벤션 (7) | 2021.12.16 |
우아한테크코스 4기 프리코스 후기 (1) - 자바 코딩 컨벤션 (0) | 2021.12.16 |
우아한 테크캠프 Pro ! 선 지원 후 고민! (0) | 2021.09.14 |