개발을 하다보면 개인이 여러 PC를 오가며 동일한 프로젝트를 작업하거나
팀원들과 하나의 프로젝트를 작업하라면 git과 같은 버전(형상) 관리 도구를 이용해야 한다.
그 중 이미 생성되어 있는 원격 저장소를
현재 작업하려는 내 PC에 연동하는 방법을 소개해보고자 한다.
참고로 필자는 vscode를 이용해 git을 연동하였다.
git clone은 말 그대로 이미 존재하는 원격 저장소를 복사해 사용하겠다는 원리이다.
명령어는 아래와 같다.
$git clone [레포지토리 주소] [디렉토리]
이미 생성되어 있는 레포지토리를 복사해보도록 하자.
이제 test222라는 테스트 폴더를 생성 후 해당 폴더에 저장소를 연동해보려 한다.
정상적으로 폴더가 생성된 것을 확인할 수 있다.
이 방법은 내 로컬 저장소와 원격 저장소를 연동하기 위한 방법이다.
원격 저장소는 1. git clone과 동일한 레포를 사용하려고 한다.
이번에는 test333 폴더를 테스트로 만들어 진행했다.
순서는 아래와 같다.
먼저 git을 초기화시켜준다.
이후 원격 저장소의 레포를 remote add 한다.
그런데 오잉.. ? 폴더에 아무것도 생성이 안된다.
원인은 로컬 저장소와 원격 저장소를 연결했을 뿐 별도로 pull 작업을 하지 않았기 때문이다.
이제야 저장소 연동이 완료되었다.
위 두 방법으로 연동을 진행하다가 몇 가지 에러가 발생하였고,
추후 동일한 상황이 발생했을 때 참고하기 위해 기록하려고 한다.
git clone을 진행하기에 앞서 git init으로 초기화를 진행하였다.
이 경우 폴더에 .git 폴더가 생성되며 동일한 폴더에 clone을 진행하다가 맞닥뜨린 에러이다.
$git clone https://github.com/Dante6327/TodoList.git .
"fatal: destination path '.' already exists and is not an empty directory." 에러 발생!!
필자는 현재 폴더에 원격 저장소를 복제하기 위해 마지막 '.'을 붙였다.
즉, 이미 .git 폴더가 생성되어있는 상태로 원격 저장소를 복제했기 때문에 발생한 상황이다.
현재 디렉토리에 원격 저장소를 복사해 쓰려면 $git init 명령어를 실행하지 않고 $git clone을 진행하면 된다.
git remote 이후 git pull을 진행해 원격 저장소를 먼저 연동하기에 앞서
로컬 저장소에 변경점을 준 후 git pull을 진행하여 에러가 발생했다.
$git init
$git remote add origin https://github.com/Dante6327/TodoList.git
폴더에서 index.html 파일 생성 및 삭제 (해당과정 때문에 에러 발생!!)
$git pull origin master
"fatal:refusingo merge unrelated histories" 에러 발생!!
로컬과 원격 저장소를 비교해 반영해야 하는데, 서로 다른 부분이 생기다보니 당연하게도 충돌이 발생된 것이다.
이럴땐 아래 pull 명령어를 수행하면 된다.
$git pull origin master --allow-unrelated-histories