본문 바로가기
SCM(형상 관리)/VCS | Git(GitHub)

Git] 협업을 위한 Github 1탄 (팀원 입장에서)

by 디지털 전산일지 2024. 9. 22.

문제 상황

- 여러 명에서 동시에 같은 프로젝트 작업을 하는 상황이었다. 각자 작업을 하고 팀 리포지토리에 올려야 한다.

 

- 팀장님께 다음과 같은 지시를 받았다.

"지금 팀 레포 만들었으니까 각자 계정으로 레포 포크해가서 본인 레포에서 작업한 뒤에 팀 레포(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로 옮긴다.)

HwangHyeonseok 사용자의 graduation_work 리포지토리의 hyeonseok branch에 있는 코드를, Zicodingbear 조직에 있는 codingbear 리포지토리의 main branch에 옮기겠다. 는 의미이다.

 

Merge pull request 버튼을 클릭합니다.

내용을 확인한 다음 Confirm merge 버튼을 클릭합니다.

 


6. 팀 레포지토리에 반영 되었는지 확인

upstream 레포지토리(팀 레포지토리)에도 잘 반영이 되었는지 확인합니다.

 

만약 반영이 안 되었다면 팀 레포지토리 만든 사람의 최종 승인을 받도록 설정된 경우입니다.

팀 레포지토리를 만든 사람에게 다음과 같이 이야기 해줍시다.

"저 PR 올렸는데 확인 후 승인 부탁드려요."