본문 바로가기
깃허브

repository remote 하기 - git

by Benihs 2024. 11. 15.
728x90
반응형

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

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

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

Git을 이용하는 remote

Git은 이미 설치되었다고 가정하고 윈도우 기준 작업표시줄에 git을 검색하면

git을 검색한 모습

Git 관련 앱이 뜰텐데 여기서 Git Bash를 실행시켜 준다.

Git Bash 실행 창

그렇다면 이런 Bash 터미널 창이 실행된다.

Repository 불러오기

먼저 사전 작업으로 복제하려는 프로젝트를 준비해야 하는데 그러려면 해당 프로젝트 폴더로 이동해야 한다.

레포지토리 클론

 git clone https://github.com/계정이름/레포지토리이름.git

하지만 로컬에 없고 깃허브 레포지토리로 존재한다면 위 명령어를 이용해서 클론 시켜주면 된다.

프로젝트 폴더로 이동하는 방법은

pwd // 현재 작업 디렉토리 확인
ls // 현재 디렉토리에 있는 파일과 폴더들 확인
cd .. // 뒤로 이동
cd 폴더 // 폴더 안으로 이동

위치 이동 예시

위와 같은 명령어를 사용해서 자연스럽게 이동하면 된다.

 

Remote add

그리고 또 다른 사전 작업으로 새로운 원격 저장소 설정 해줘야 한다.

remote 추가 예시

git remote add organization https://github.com/organization이름/레포지토리이름.git

로컬 리포지토리의 원격 저장소에 organization이름에 들어갈 이름을 가진 조직의 리포지토리를 추가하는 명령어다.

(add 다음에 나오는 organization은 임의로 정한 이름으로 다른 이름으로 바꿔도 된다.)

프로그램 push

사전 준비가 모두 끝났다면 이제 push 해주면 된다.

git push organization main

로컬의 코드를 조직 리포지토리에 푸시하는 명령어다.

브랜치를 확인하고 (보통 main 또는 master), 해당 브랜치에 푸시한다.

 

돌발 오류

push 오류 이미지

아무 오류 없이 성공한다면 이 부분은 넘어가고 내가 해보니 failed to push 오류가 발생했다.

찾아보니 이 오류는 원격 저장소의 main 브랜치에 로컬에 없는 변경 사항이 있어서 발생하는 문제였다.

빈 프로젝트였지만 일단은 해결하기 위해 두 가지 명령어를 입력해 줬다.

git pull organization main

위에 명령은 아까 만든 원격 저장소의 main 브랜치 변경 사항을 로컬 브랜치와 병합하는 것이다.

다시 발생한 push 오류

하지만 해결되지 않아 더 자세히 알아봤더니 문제를 찾을 수 있었다.

바로 로컬 저장소와 원격 저장소의 히스토리가 서로 관련이 없는 경우 발생하는 문제였다.

자세히는 fatal: refusing to merge unrelated histories 메시지가 가진 의미가

로컬 저장소와 원격 저장소가 서로 다른 독립적인 커밋 히스토리를 갖고 있다는 것이다.

알고 보니 결론은 내가 organization에서 리포지토리를 만들 때 README를 추가했었는데 이게 원인이었던 것이다..

 

문제를 해결하기 위해 원격 저장소의 커밋을 병합해야 한다.

git pull organization main --allow-unrelated-histories

git add .
git commit -m "Merge unrelated histories"

위 명령어는 --allow-unrelated-histories 옵션을 사용해 pull 명령을 수행한다.

서로 관련 없는 히스토리를 병합하도록 Git에게 허용하도록 하는 명령어다.

아래 명령어는 병합과정을 커밋해서 커밋하는 것이다.

history 오류 해결

이제 다시 push 해보자

성공적인 push

성공적으로 push를 완료했다.

안드로이드 스튜디오에서 확인하기

이제 안드로이드에서 조직의 레포지토리에 있는 걸 불러와보도록 하겠다.

그러려면 Get from Version Control이라고 되어 있는 창으로 넘어가야 하는데 여기엔 2가지 방법이 있다.

 

VSC 창 열기

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... 메뉴 순서로 이동하면 된다.

 

Repository Clone 하기

Clone 창

Git URL과 Directory를 설정해 주고 Clone 버튼을 누르면 성공적으로 clone이 된 것을 확인할 수 있다.

 

Next

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

728x90
반응형

'깃허브' 카테고리의 다른 글

Git 사용하기  (0) 2025.01.30
Git 설치하기  (1) 2025.01.27