본문 바로가기
Android

repository remote 하기 - Android Studio

by Benihs 2024. 11. 16.

안드로이드 스튜디오를 이용해서 앱 제작 프로젝트를 진행할 때

개인 레포지토리에서 작업하던 걸 organization의 레포지토리로 복제해야 하는 경우가 생겼다.

이번엔 이런 경우였지만 또 이런저런 때를 대비하기 위해 글을 작성한다.

 

Android Studio를이용하는 remote

Repository 불러오기

Android Studio는 이미 설치되었다고 가정하고 안드로이드 스튜디오의 기능을 이용해서 remote하는 법을 설명한다.

먼저 개인 레포지토리에서 작업하던 걸 스튜디오에 불러오기 위해서 Get from Version Contro 창으로 넘어가야 한다.

이 창으로 넘어가는 방법은 2가지가 있다.

1. Main(Welcome to Android Studio) 창에서 넘어가는 법

Main 창 -> Version Control 창

Main 창에서 Get from VCS(Version Control System)를 누른다.

 

2. Android Project 창에서 넘어가는 법

File 탭 -> New 메뉴 -> Project from  Version Control... 메뉴

File -> New -> Project from Version Control... 이 순서로 클릭한다.

 

Get from Version Control 창으로 넘어왔다면 레포지토리를 불러와야 한다.

불러올 레포지토리가 없다면 깃허브에 레포지토리를 만들고 오자.

💡레포지토리를 만들때 절대 README를 미리 추가하면 안된다. history가 꼬이면 Remote의 큰 어려움이 생긴다.

 

레포지토리를 불러오는 것에 두가지 방법이 있다.

1. 깃허브에서 복사한 HTTPS링크를 이용해서 복제한다.

Git hub HTTPS 링크 얻는 복사하는 법

원하는 레포지토리에 들어가 Code라고 적혀있는 초록색 버튼을 클릭하고 나오는 HTTPS 탭에서 URL를 복사한다.

URL로 Clone하기

Git URL과 Directory를 설정해 주고 Clone 버튼을 누른다.

 

2. 깃허브 계정을 스튜디오에 저장했다면 저장한 계정을 선택하고 복제할 레포지토리를 검색한다.

깃허브 계정 연동 후 검색으로 Clone

 

Directory에는 프로젝트를 저장할 경로를 써줘야한다.

💡예시 처럼 경로에 비ASCII 문자를 포함한다면 오류가 날 수 있으니 주의하자.

폴더 경고창

클론할 때 처음 저장하는 폴더라면 위와 같은 경고문이 뜰테지만 내가 정한 폴더니 Trust Project를 누른다.

  • Trust Project: 프로젝트를 신뢰하고, 모든 기능을 활성화하여 정상적으로 열리게 한다. 이 옵션을 선택하면 모든 코드를 실행할 수 있고  해당 경로에 있는 모든 프로젝트가 신뢰 목록에 추가된다.
  • Preview in Safe Mode: 안전 모드에서 프로젝트를 미리 보기만 한다. 이 경우 코드 탐색만 가능하며, 일부 기능은 제한된다.
  • Don't Open: 프로젝트를 열지 않고 창을 닫는다.

Manage Remotes

프로젝트 창이 열리면 이제 프로젝트를 remote 해야한다.

Git 탭 -> Manage Remotes... 매뉴

위에 있는 Git 탭에서 Manage Remotes... 메뉴를 선택하면 Git Remotes 창이 뜬다.

Git Remotes에서 Add 하기

Git Remotes 창에서 + 버튼을 누른다.

Define Remote 창

그럼 Define Remote 창이 나올텐데 여기서 Name과 URL을 입력하고 OK를 누른다.

Name은 Remote 할 저장소의 이름을 정의하는 것이고 URL은 복제할 저장소의 HTTPS 링크다.

GitHub에 로그인

OK 버튼을 눌렀으면 Log In to GitHub 창이 나올 것이다.

GitHub에 로그인해야 계속 진행할 수 있다는 경고문인데 파란색 Log In via GitHub... 버튼을 눌러준다.

깃허브 인증 확인 창

그럼 위와 같은 창이 뜨고 Authorize in GitHub 버튼을 클릭한다.

깃허브 인증 완료 창

깃허브 인증을 성공한 것을 볼 수 있다.

Remotes 추가 완료

다시 안드로이드 스튜디오로 돌아와서 Git Remotes창을 확인하면 추가된 것을 볼 수 있다.

Git Version Control Setting

깃허브와 관련된 여러 작업을 처리할 때 마다 이제 계속 깃허브 인증을 해야할 수 있다.

그 과정을 생략할 설정을 하는 작업을 할 것이다. 이 부분은 불필요하다면 생략해도 좋다.

File -> Settings

File 탭에서 Settings 메뉴를 선택한다.

Settings -> Version Control -> GitHub

Settings 창이 나올텐데 여기서 Version Control 를 선택한다.

그럼 안드로이드 스튜디오에서 버전을 관리할 수 있는 여러 옵션이 나오는데

우리가 원하는 건 Git 서비스니까 Git을 선택해준다.

Version Control -> Git -> Update

Git 탭에서 밑으로 스크롤을 내리면 Update 부분이 나오는데 여기서 Use credential helper를 선택해준다.

이제부터 자동으로 깃허브 인증이 된다.

 

프로그램 push

모든 준비가 끝났다면 이제 push 해주면 된다.

Git -> Push

Git 탭에 Push 메뉴나 오른쪽 상단에 있는 초록색 화살표를 클릭한다.

Push Commits

프로그램 소스 코드를 commit push 해야하는데 아무것도 뜨지 않는다고 놀라지 않아도 된다.

현재 지금 push 설정으로 되어 있는건 원래 설정되어 있었던 개인 레포지토리기 때문이다.

push할 저장소를 변경하기 위해선 위에 파란색 origin 부분을 클릭하면 된다.

origin -> organization

아까 저장해놓았던 저장소인 organization으로 변경해준다.

organnization에 push 하기

그럼 이렇게 원래 개인 레포지토리에 있던 commit들이 뜨는 것을 확인할 수 있다.

push 버튼을 누른다면 push과 완료된다.

 

돌발 오류들

사실 Define Remote 과정에서 발생한 오류의 해결이 쉽지 않았다.

이제부터 해봤던 방법을 설명하긴 할테지만 개인적으론 그냥 Git을 이용하는 것을 추천한다.

remote: Repository not found 오류

처음에 이 오류를 맞이 했을 때 내가 레포지토리를 제대로 만들지 않았나? 하고 생각했지만

레포지토리는 멀쩡하게 존재했고 안드로이드 스튜디오는 내게 정확한 오류 메시지를 전달해주지 않았다.

  1. 레포지토리 이름 또는 경로 확인(혹시 오타가 있을지)
  2. 레포지토리 생성 여부 확인(정말로 그 계정에 레포지토리가 있는지)
  3. 접근 권한 확인(레포지토리가 private인지 내 권한이 owner가 아닌지)
  4. GitHub Personal Access Token으로 로그인했는지
  5. 깃허브 계정 연동 혜제하고 다시 연동
  6. 자격증명관리자에 잘못되어 저장되어 있는지
  7. 계정이름을 먼저 넣어주고 그 뒤에 @를 붙여 url을 넣기

이렇게 크게 6가지 방법을 시도해보았는데 내가 효과를 본 방법은 3번과 7번이다.

너무 다 해봐서 솔직히 정확히 뭐가 해결방법이 됐는진 모르겠지만

7번을 하고 3번을 하니 해결되었다.

 

7번: 계정 연동이 잘 되지 않았을 경우 사용하는 방법

계정이름을 먼저 넣어주고 그 뒤에 @를 붙여 url을 넣는게 해결책인데

이 때 계정 이름은 이메일도, 자격증명 이름도 아닌 내 깃헙에 설정해놓은 계정이름이다. (프로필에 나오는 계정 이름)
이 방법을 썼더니 깃헙 브라우저가 열리면서 내 깃허브 계정에 로그인을 연동하라고 나왔다.

생각해보니 내가 처음 깃허브 인증을 했을 때 열린 창이 이 깃허브가 로그인되어 있는 계정이 아니였었다.

 

3번: 권한 확인

7번까지 모두 해보고 해결이 되지 않아 팀 내 권한을 Owner로 다시 받고 레포지토리로 돌아가 Manage access도 해줬다.

이래도 안돼서 레포지토리를 둘다 private에서 public으로 바꿔주었더니 성공했다.

Git을 이용한다면 둘다 private이여도 가능하더라..

 

참고한 블로그: https://velog.io/@lionloopy/git-repository-not-found-%EC%98%A4%EB%A5%98

Next

이렇게 Android Studio를 이용하여 개인 리포지토리에서 조직의 리포지토리로 프로젝트 코드를 이동시키는 법을 배웠다.

'Android' 카테고리의 다른 글

Android Studio Version Control System Menu  (0) 2024.11.27
Android Studio에서 Github에 프로젝트 올리기  (0) 2024.11.25