본문 바로가기

git 공부

Git 정리 - 협업하기 fork, Pull Request

728x90
반응형

미니 프로젝트가 곧 시작된다.
Git으로 협업 과정은 필수다. 구글 서칭을 통해 기본적인 플로우와 필수로 알아야하는 명령어들을 찾아 보았다.
원활한 협업 Git사용을 위해 내가 생각이 안 날때 찾아보기위해 정리한다.

 

Fork

내께 아닌 기존에 레포지토리가 존재한다. 난 이 프로젝트에 기여자(Contribute)가 되고 싶다.
fork: 다른 사람의 저장소에 있는 레포지토리를 내 원격 저장소, 깃허브로 가져오는 것이다.

 

 

 

fork 하고 원격 레포지토리를 내 로컬에 Clone한 후 코드를 수정하면된다.
Clone: 레포지토리를 로컬저장소에 복사

이것저것 수정한 후 내 원격 저장소에 커밋한다. 그 후 원래 퍼온 레포지토리에 Pull Request를 보낸다.
원래 주인이 수정내용 확인 후 허가해주면 merge가 된다.

 

Pull Request


branch를 만들어 수정한 후 내 브랜치 검토 후 merge해달라고 하는 요청이다.

과정:
1.내 원격 레포지토리에 fork
2.clone
3.remote 설정
4.branch 생성
5.수정(add, commit, push)
6.Pull request 생성
7.Merge Pull Request
8.Merge 후 동기화 후 branch 삭제

과정


fork


레포지토리에 들어가서 포크누른 후 Create fork 누른다.

나한테 포크된 곳곳으로 들어가서 주소를 복사한다.

 

 

 

 

클론 만들기

 

$ cd C:\Users\MS\Desktop\공부 # clone할 로컬 폴더로 이동

$ git clone <복사한 레포지터리 URL>

 

 

remote 등록


origin 이라는 이름으로 remote url이 내 원격 저장소로 기본으로 설정되어 있다.
포크 했던 원본 저장소도 remote 등록 해야 나중에 동기화 하기 편하다.

 

# 원본 저장소 remote 등록
$ git remote add <별명> <원본 저장소 url>

# 원격 저장소 확인
$ git remote -v

 

 

branch 분기


브랜치에서 작업후 push해도 main은 유지되고 새로 만든 브랜치만 최신이 된다.
그래서 오류 발생해도 뒤로 롤백하기가 쉽다.
브랜치 만들어 작업하고 머지까지 완료되면 원본 remote에서 pull하고 작업한 브랜치를 삭제한다.

 

 

# 브랜치 생성
$ git branch <branch 이름>

# 브랜치 이동
$ git checkout <branch 이름>

# 브랜치 생성후 이동 (단축 명령어)
$ git checkout -b <branch 이름>

# 브랜치 리스트
$ git branch

 

 

코드 작업 후 add / commit / push

 

 

$ git add . 

$ git commit -m "commit 메시지"

$ git push origin main

 

 

pull request


깃허브에서 상단에 Compare & pull request 누르고 메시지 쓴 후 Create pull request 누른다.

그 레포지토리 주인장이 Merge Confirm 해주면 머지가 된다. 이를 거절할 수도 있다.

 

 

branch 삭제


Merge 를 해주면 동기화 하고 branch 삭제한다.
원본 저장소에 Merge 완료되면 로컬 코드와 원본 저장소의 코드를 pull로 동기화한다.
그리고 branch 삭제해 준다.

 

# 코드 동기화
$ git pull 원래꺼remote # 원본 remote 와 동기화

# branch 삭제
$ git branch -d develop # 용무가 끝난 브랜치 삭제

 

 

참고: https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%EA%B9%83%ED%97%99-PRPull-Request-%EB%B3%B4%EB%82%B4%EB%8A%94-%EB%B0%A9%EB%B2%95-folk-issue?category=890999

회고

교육 입과후 처음으로 공동 프로젝트이다. 깃으로 협업은 필수다.
간단하지만 필수적인 방법을 정리해 두니 팀원과 잘 할 수 있을 거 같다. 생각보다 로직이 간단하고 명령어도 사용해본 것들이다. 잘 숙지하고 프로젝트에 적용할거다.
수정 잘못해서 민폐가 되지 말자

반응형