GitHub 협업하기

Kim Ju Young·2021년 12월 2일
0

Github

목록 보기
2/3
post-thumbnail

협업 시작

GitHub를 사용하다보면 믿을만한 친구들이 있고, 모습도 모르는 타인이 있습니다.

GitHub를 잘 다루고 내 파일을 망치지 않을 믿을만한 친구에겐 Repository - Settings - Manage Access로 레포지토리 통제권을 전부 넘겨줄 수 있습니다.

하지만, 조심하세요!

함부로 권한을 주다보면 잘 모르는 사람이 자신의 해당 레포지토리를 망칠 수 있습니다.

대체로 자신이 프로젝트 리더라면, 팀원에게 프로젝트의 모든 걸 맡기는 경우는 손에 꼽기 때문에 관리자 권한을 주지 않고 협업시, Fork & Pull Request 방법을 사용하게 됩니다.

그럼, Pull Request 하는 방법에 대해 알아보겠습니다.

우선 참여할 프로젝트에 대해서 Fork를 해야합니다.

Fork 하기

저는 seoulsudal 님의 Project에 기여해보겠습니다.

이 때, 전제조건은 seoulsudal과 저는 이메일을 나누든 현실에서 보든 아는 사이지만, 몰래 도와주고 싶거나 seoulsudal이 프로젝트 리더일 경우입니다.

기여하고 싶은 해당 Project 를 Fork 해줍니다.

정상적으로 Fork 가 되었다면, 왼쪽 상단 레포지토리 경로가 seoulsudal에서 CodingPythonMan인 저에게 프로젝트가 복사되었을 겁니다.

이는 자신의 Repositories 에서 확인이 가능합니다.

이 상태에서 어떻게 상대방의 레포지토리에 기여할 수 있을까요?

Repository 기여순서

순서는 다음과 같습니다.

  1. 복사된 내 Git 레포지토리에 기여할 파일을 Push한다.
  2. 그 후 Contribute 버튼을 누른 후, New Pull request 한다.
  3. 레포지토리 관리자가 Merge 한다.

차례차례 보여드리겠습니다.

내 Git 에 Push하기

내 Git에 Push 하기 전, git clone으로 git 히스토리 내역과 파일을 복사해오는게 편합니다.

제가 원하는 디렉터리 위치(C:\gitsource)로 가서 원격에 있던 git을 로컬로 복사했습니다.

git clone 완료입니다.

그 다음, 저는 폴더 하나와 텍스트 파일 하나를 추가 해주었습니다.

이 폴더와 파일을 기여해보겠습니다.

Project 위치로 가서 git add, commit, remote add, push 까지 마쳐줍니다.

이렇게 새로 추가한 폴더, 파일이 제 레포지토리에 잘 Push 된 것을 볼 수 있습니다.

Contribute 하기

우선 Contribute 버튼을 눌러줍니다.

조그마한 창이 뜹니다. This branch is 1 commit ahead of seoulsudal main.

이 레포지토리에서 하나의 커밋을 seoulsudal로 기여할 수 있다는 뜻입니다.

여기서 주의할 점은 Able to merge 가 안 뜨는 경우가 있습니다.

이 때는 git log가 기여하려는 사람과 다르기 때문입니다.

우리가 git commit 한 시점마다 저장이 되는데, git log가 다르다면 그 시점으로 돌아갈 수 없기 때문입니다.

이 때는 적절한 git pull 과 fetch가 필요한데, 글이 길어지니 다음 게시물에서 다시 설명하겠습니다.

이렇게 되면 Pull request 가 끝납니다.

이제 더 이상 기여자가 할일은 없습니다.

이 레포지토리의 주인이 Merge 하거나 Merge를 거부하게 되면 끝납니다.

레포지토리 주인에게는 아래와 같이 나타나고 Merge를 거부하거나 Merge 할 수 있습니다!

이제 이렇게 여러사람이 Pull Request 하여 기여하게 되면, seoulsudal 레포지토리는 계속해서 변경이 일어나게 됩니다.

하지만, 제 Fork 해온 레포지토리는 자동으로 그 정보를 업데이트 하지 않습니다.

업데이트 하려면 Fetch upstream 버튼을 누르고 Fetch and merge 해줘야 합니다.

그 후, 내 로컬까지 업데이트를 위해선 git pull과 fetch의 적절한 조합이 필요한 겁니다.

profile
호호선생

0개의 댓글