로컬 레포지토리(Local Repository)의 최신 내용을 리모트 레포지토리(Remote Repository)에도 반영하려면

git push

를 해야한다고 배웠습니다. 그런데 여기서 잠깐 궁금한 점이 하나 생깁니다.

그렇다면 아무나 git push라고만 쓰면 자신이 작업한 내용을 저의 리모트 레포지토리에 반영할 수 있는 걸까요?

그건 아닙니다.

이게 만약 가능하다면 저도 모르는 사이에 제 리모트 레포지토리의 내용이 맘대로 바뀌어 버릴 수도 있겠죠? 사실 git push는 리모트 레포지토리의 주인, 그러니까 본인만 할 수 있습니다. 만약 본인이 아닌 다른 사용자도 git push를 할 수 있게 하려면 GitHub에서 추가 작업을 해줘야 합니다.

일단 GitHub 페이지에서 저(codeitTeacher)의 리모트 레포지토리인 MathBox의 설정을 살펴보겠습니다.

상단의 여러 탭 중에서 Settings 탭을 클릭하세요. 그 다음 화면 왼쪽의 Manage access 탭을 클릭하면 되는데요.

화면에 PUBLIC REPOSITORY라는 표현이 보이죠? 이 말은 지금 누구나 제 리모트 레포지토리의 주소만 알면, 그 내용을 살펴볼 수 있다는 뜻입니다. 그리고 누구든지 제 레포지토리를 자기 컴퓨터로 가져갈 수도 있다는 뜻이구요. 그리고 자기 컴퓨터에서 추가 작업을 할 수도 있죠? 하지만 그래도 본인이 아닌 이상 그 내용을 git push할 수 없기 때문에 리모트 레포지토리에 반영할 수는 없습니다.

그럼 저 말고 이제 다른 사용자도 git push할 수 있도록 설정을 조금 바꿔볼게요. 아래 그림을 보세요.

화면 하단에서 Invite a collaborator 버튼이 보이시나요? collaborator를 초대한다는 뜻인데요. 다른 사용자를 collaborator로 초대하면 그 사용자는 제 리모트 레포지토리에 git push할 수 있는 권한을 가질 수 있습니다. 버튼을 클릭해볼게요.

그 다음 뜨는 창에서 위 그림과 같이 GitHub의 codeitDeveloper라고 하는 사용자를 검색해서 클릭할게요.(codeitDeveloper는 제가 미리 따로 준비해둔 다른 사용자 계정입니다.)

그리고 codeitDeveloper에게 “내 레포지토리의 collaborator가 되어달라”는 초대장을 보낼게요.

그럼 이제 codeitDeveloper에 대해서 Pending invite 상태가 됩니다.