본문 바로가기
Git

[TIL] Git 협력자(Collaborator)

by pin9___9 2022. 11. 2.
728x90

Collaborators란?

Repositories를 생성한 프로젝트 관리자(master) 외에 프로젝트 공동 책임자를 말합니다. Collabotator는 프로젝트 관리자(master)가 직접 추가를 해줘야만 얻을 수 있는 권한입니다. Collaborator는 프로젝트의 공동 책임자이기 때문에 Github의 push, pull 권한을 모두 가지고 있습니다.

 

VS Contributor

Contributor는 Collaborator와 다르게 push와 pull의 권한이 없습니다. 프로젝트의 핵심 개발 팀은 아니지만 외부에서 한 프로젝트의 커밋에 관여하는 모든 사람들을 말합니다.  

 

  1. 외부 이용자는 Push의 권한이 없으므로 Repositories를 Fork 하여 프로젝트를 통째로 복사한 뒤 프로젝트를 수정하고 Push를 할 경우 자신이 복사해 온 프로젝트에 Push가 되고, Pull Request를 통해 프로젝트 관리자에게 보낼 수 있습니다.
  2. 프로젝트 관리자는 외부 이용자와 토론을 거쳐 commit을 진행하게 되고, 관리자가 Merge를 할지 Reject를 할지 선택합니다. 
  3. 이 과정에서 Merge가 될 경우, 그 이용자를 Contributor라 부를 수 있습니다. 

 

Collaborator 추가하기

1. 우선 해당 프로젝트의 [Setting] 탭에 들어갑니다.

 

 

2. 왼쪽 [ Access ]에 [ Collaborators ]를 클릭 후 [ Add people ]를 클릭합니다.

 

 

3. 초대하고 싶은 유저의 Github ID & E-mail를 입력하여 유저를 찾은 후, [Add *** to this repository ]를 클릭하여 유저를 추가해줍니다.

 

 

오류

Collaborator가 Push를 진행했을 때, error: failed to push some refs to 라는 오류가 발생했습니다.

이 오류에 대해 찾아보니 원인은 Github에 Collaborator의 로컬에 없는 파일이 존재하고 그 상태로 Collaborator가 Push 할 경우 발생하는 오류였습니다.

 

해결법!

1) 강제 Push

Pull을 하고 난 뒤 다시 Push를 하라고 경고창에서 알려줬지만, Pull을 할 경우 Collaborator의 로컬에 있는 파일들이 날아갈까 봐 이 방법을 찾았습니다.

 

1. 강제 Push 하는 법

git push -f origin

이 코드를 사용하면 강제적으로 Repository에 Push를 할 수 있습니다. , 이 방법을 사용할 시 Repository의 모든 작업들이 날아가고 강제 Push 한 파일만 남게 됩니다...

2) Pull → Merge → Push

Github에서 로컬에 저장되어 있지 않은 파일을 Pull 한 후 Github에 다시 Push를 합니다.

 

728x90

댓글