프로젝트의 규모가 크면 하나의 프로젝트에 여러 명의 개발자가 배정이 되고 소스코드 공유 및 리뷰 등 다양한 협업 과정을 통해 프로젝트를 완성해 나간다.

내가 지금 다니고 있는 회사는 규모가 작기도 하고 또 여러 사정으로 인해, 인당 역할이 나누어져 있다보니(백엔드1, 웹프론트1, 안드로이드1 등) 협업을 하기 위한 솔루션이 필요 없다.
(만약 개발 규모가 작더라도 모바일 앱 개발만 하는 회사는 앱 개발자가 여러 명일 것이기 때문에 협업 과정이 필요할 것임)

그런데 필요없다고 몰라도 되는 건 아니니께..

Android Studio에 내장된 Git tool과 Github을 사용한 기본적인 협업 내용을 정리하고자 한다.

 

사실 미리 스포를 하자면,

Collaborator를 이용해서 master push가 아닌 branch push를 통해 PR을 생성했다.

대체 왜 해야 되냐라고 생각하시는 분들은 이 글은 안 보셔도 될 것 같다. 🥲

 

Collaborator 추가하기

이 작업은, 함께 할 프로젝트 Repository에 타 사용자의 접근 권한을 주는 것이다.

 

Collaborator는 프로젝트 관리자와 함께 원본 저장소의 Push&Pull 권한을 가지게 된다.

그렇기 때문에 프로젝트 관리자만이 직접 권한을 줄 수 있다.

 

테스트할 Repository의 Settings 메뉴 선택

Options에서 Manage access 메뉴 선택

Invite a collaborator 선택

초대하려는 유저의 아이디를 입력 후 선택,
그리고 Add [User-id] to [Repository name] 버튼을 눌러서 초대한다.

 

Collaborator로 지정된 유저는 자신의 메일로 초대장을 받을 수 있는데, Github에 로그인이 된 상태에서 초대장의 링크를 클릭하면, 아래와 같이 초대를 수락할 수 있는 인터페이스가 나온다.

유저가 'Accept invitation'을 하면 Collaborator 추가는 완료된다.

 

 

 

Github 프로젝트 Android Studio로 가져오기

이제 함께 작업해나갈 프로젝트를 가져와야한다.
가져오는 방법에는 여러가지가 있는데, 이 포스트에서는 IDE 기능 중 하나를 이용해 가져왔다.

먼저 이 과정을 테스트하기 위해서 테스트 프로그램 하나를 저장소에 Commit을 한다.
Github에 project를 commit하는 방법 참고

가져올 Repository의 주소를 복사한다.

Android Studio에서 Welcome 화면을 띄운 후 Get from Version Control 메뉴를 선택한다.


※ 웰컴화면 띄우는 방법
File > Close Project

URL란에 아까 복사한 Repository 주소를 넣고 Clone 버튼을 누른다.

가져오기 완료

 

 

소스코드 업로드하기

이제 Collaborator가 소스코드를 수정해서 Github 저장소에 업로드해보자.

사실 Collaborator는 이미 원본 저장소에 Push & Pull 권한이 있기 때문에 Local master에서 Commit & Push하면 내 것처럼 Github 저장소에 Push & Pull 작업을 할 수 있다.

이 글 서두에 언급한 것처럼 PR을 생성하기 위해 일부러 다음과 같은 작업을 한다.

 

이 글에서는 간단하게 아래 이미지와 같은 시나리오를 실행해보겠다.

이렇게 하게되면 Collaborator라도 PR(Pull Request)를 생성할 수 있다.


위 이미지는 여기서 가져와서 수정함

 

이를 위해선 Branch 상태에서 소스코드 수정 후 Push를 한다.
먼저 Brach 생성


VCS > Git > Branches...

New Branch

생성할 Branch 이름을 넣고, Checkout 옵션을 체크하고 Create 버튼으로 Branch를 생성한다.

소스코드 수정

Commit 후 Remote저장소에 Push

 


혹시 Android studio에에서 Github 로그인을 하지 않았다면, 로그인 창이 팝업될텐데 로그인하면 된다.

조금만 기다리면 Pushed branchA to new branch origin/branchA 메시지가 뜬다.

 

 

 

Pull request(이하 PR) & Merge

※ 여기서 잠깐, 한 번 더 언급한다.

일단 Collaborator로 등록이 되면, PR&Merge 없이 마스터 브랜치에서 바로 Push 작업을 할 수 있다. 이 글에서는 마스터가 아닌 브랜치 Push를 통해 PR&Merge 작업을 유도했다. 

 

 

Collaborator는 자신의 Remote 저장소에 가보면 Compare & pull request 버튼이 활성화된 것을 볼 수 있다. 버튼을 선택한다.

 

 

Title과 Comment 부분을 작성하고 Create pull request 버튼을 선택한다.

 

 

그럼 이렇게 PR탭에 추가한 작업을 볼 수 있다.

 

 

이후 Merge pull request 버튼을 클릭해서 Merge 작업을 한다.

생성된 Branch는 다음 작업을 통해 안전하게 삭제한다.

※ Branch를 남기고 싶으면 이 작업 생략 가능

 

 

마지막으로 확인해보면 Collaborator가 수정한 부분이 Merge된 것을 볼 수 있다.

※ 사실 Fork를 따서 각각 수정 작업을 하면 위 시나리오가 가능하다.

근데 private 저장소 fork하려면 돈을 내야.... 이 글은 공짜로 하는 방법..

변경한 작업 가져오기

  • 프로젝트가 변경이 되었으니, 기존에 작업하던 Local master에서 변경된 부분을 수정해야할 것이다.

VCS > Git > Pull
origin/master에 체크한 후 Pull 버튼 선택한다.

조금 기다리면 Collaborator가 수정한 부분이 적용된 것을 볼 수 있다.

 

 

  • Collaborator 또한 Branch에서 작업한 것이 Merge되었기 때문에, Local Master에 Merge 작업을 한다.

VCS > Git > Branches...
or
Ctrl + Shift + 물결표시버튼을 누르면 Branch 메뉴가 나온다.

master 선택 후 Checkout 선택해서 Master로 Head를 변경한다.

이후 Merge하면 된다.
VCS > Git > Merge Changes...
branchA를 체크하고 Merge버튼을 누르면 된다.

Merge 완료


글이 이렇게 길어질 줄 몰랐는데, 다음에는 끊어서 연재형식으로 올려야겠다.

 

사실은, Collaborator를 사용해 Branch를 Push하는 방법은 효율적이지 않다.

기업에서도 돈 내고 깔끔하게 Private 저장소를 Fork 떠서 사용하는 방법이 가장 좋을 것 같다.

그런데.. 그렇지 못 한 기업이라면? 이 방법도 시도해보면 나쁘진 않지 않을까..?

 

혹시 다른 방법이 있다면 댓글로 알려주세요!🙌

 

※ 함께보면 좋은 글

헤이딜러 개발팀 모두가 행복한 개발/PR 관리 방법 7가지  👍

배우면 원숭이도 할 수 있는 깃 튜토리얼 사이트 👍