문제 상황
- 여러 명에서 동시에 같은 프로젝트 작업을 하는 상황이었다. 각자 작업을 하고 팀 리포지토리에 올려야 한다.
- 팀장님께 다음과 같은 지시를 받았다.
"지금 팀 레포 만들었으니까 각자 계정으로 레포 포크해가서 본인 레포에서 작업한 뒤에 팀 레포(dev)로 PR 올리도록 합시다."
이 지시를 알아듣기 위해서는 협업을 위한 github 명령어들을 알아야 한다.
협업을 위한 Github
0. 선수 지식
origin과 upstream의 차이 : https://hyeonstone.tistory.com/entry/Git-origin%EA%B3%BC-upstream%EC%9D%98-%EC%B0%A8%EC%9D%B4
Git] origin과 upstream의 차이
요약- origin과 upstream은 저장소의 상대적인 위치를 나타낸 것이다.- 기준 > origin > upstream 순서로 위치가 지정된다.- clone을 하면 상하 관계가 명확해져서 자동으로 origin과 upstream이 정해진다. 문제
hyeonstone.tistory.com
1. 전체 Flow
2. Fork
3. clone & checkout
4. 작업 진행 + commit & push
5. Pull Request (PR)
6. 팀 레포지토리에 반영 되었는지 확인
2. Fork
팀 레포지토리에서 fork 해와서 개인 레포지토리로 옮겨 놓습니다.
Tip ) clone(복제)와 fork의 차이
clone(복제) : 원본 저장소와 연결되어 있지 않음. (즉, 수정 후 원본 저장소에 반영할 수 없음)
fork : 원본 저장소와 연결됨. (즉, 수정 후 원본 저장소에 반영할 수 있음) -> 협업을 위해 반드시 필요
3. clone & checkout
나의 깃허브 계정에 들어가서 Fork된 레포지토리를 확인합니다.
해당 repository 주소를 가져옵니다.
Code 버튼을 눌러 복사하면 됩니다.
vscode를 키고 빈 폴더를 만들어서 폴더를 엽니다.
터미널을 열고 아래 명령어를 칩니다. 아래 이미지와 같이 되었으면 clone 성공입니다.
git clonehttps://github.com/HwangHyeonseok/graduation_work.git
아래 명령어도 추가적으로 쳐줍니다.
cd code .
git checkout -b hyeonseok
# git checkout -b <만들 branch명>
아래 이미지처럼 root 폴더가 폴더명으로 바뀌고, branch가 hyeonseok으로 잘 바뀌었으면 성공입니다.
4. 작업 진행 + commit & push
작업을 진행합니다.
아래 명령어를 통해 바뀐 내용을 확인합니다.
git status
커밋 명령을 하기 위해 staging area에 올립니다.
staging area는 쉽게 말해 깃허브 리포지토리에 수정해서 올릴 대상을 정하는 것입니다.
참고 ) . 은 전체 파일을 의미합니다.
git add .
git add <staging area에 올릴 파일>
이제 커밋을 진행합니다.
git commit –m “feat: server 수정 완료”
# git commit -m "<커밋 메시지>"
내 리포지토리에 올립니다.
git push origin hyeonseok
# git push origin <branch명>
정상적으로 잘 되었으면 깃허브 홈페이지에서 hyeonseok branch로 바꾸고 바뀐 내용을 확인합니다.
정상적으로 잘 되었으면 아래와 같은 화면입니다.
5. Pull Request (PR)
이제 작업한 것을 upstream 레포지토리(팀 레포지토리)에 올립니다.
만약 origin과 upstream의 내용을 모른다면? 아래 링크를 참고해주세요.
https://hyeonstone.tistory.com/entry/Git-origin%EA%B3%BC-upstream%EC%9D%98-%EC%B0%A8%EC%9D%B4
Git] origin과 upstream의 차이
요약- origin과 upstream은 저장소의 상대적인 위치를 나타낸 것이다.- 기준 > origin > upstream 순서로 위치가 지정된다.- clone을 하면 상하 관계가 명확해져서 자동으로 origin과 upstream이 정해진다. 문제
hyeonstone.tistory.com
먼저 Compre & pull request 버튼을 클릭합니다.
아래 화면에서 어느 코드를 어디로 옮길지 설정하고, 작업 내용을 작성한 다음 Create pull request 버튼을 누릅니다.
주의 : to <- from 의 개념입니다. (from에서 to로 옮긴다.)
Merge pull request 버튼을 클릭합니다.
내용을 확인한 다음 Confirm merge 버튼을 클릭합니다.
6. 팀 레포지토리에 반영 되었는지 확인
upstream 레포지토리(팀 레포지토리)에도 잘 반영이 되었는지 확인합니다.
만약 반영이 안 되었다면 팀 레포지토리 만든 사람의 최종 승인을 받도록 설정된 경우입니다.
팀 레포지토리를 만든 사람에게 다음과 같이 이야기 해줍시다.
"저 PR 올렸는데 확인 후 승인 부탁드려요."