git remote
Manage set of tracked repositories
— Git 공식 매뉴얼(man git-remote)
내 컴퓨터 혼자만의 고독하고 소소한 일기장이 전 세계 만천하에 공개되는 고발장으로 진화하게 만들어주는 통신선. 왜 내 remote 주소는 항상 오타가 한 글자씩 나서 한 번에 연결이 안 될까(...)
1. 개요
로컬 저장소와 연결을 수립할 네트워크상의 외부 원격 저장소 목록을 관리하는 유용한 사령탑 커맨드다. 이 녀석이 허락을 내주어야 비로소 내 로컬 컴퓨터에서 저지른 코딩 범죄 기록들을 GitHub나 GitLab 같은 거대 구름 너머의 본진 저장소로 안전히 실어 나를 수 있다.
2. 오리진(origin)이라는 이름의 지독한 가스라이팅
대체 왜 모든 튜토리얼 문서와 교과서에서는 git remote add origin URL을 쓰라고 교육할까? 많은 입문자들이 origin이 Git 시스템 내부의 필수 예약어라고 굳게 믿지만, 사실은 그냥 단순한 별칭(Alias)에 불과하다. 내가 원한다면 git remote add my_home URL처럼 내 멋대로 이름 지어도 완벽히 동작한다. 단지 최초의 기본값 관습에 절여진 전 세계 수천만 명의 개발자들이 관성적으로 쓰고 있을 뿐이다.1
3. 원격 주소의 은밀한 갱신과 세탁
회사가 서버를 이전하거나 오픈소스 저장소를 포크(Fork)해서 주소가 바뀔 때, 기존 설정을 파괴하지 않고 깔끔히 이사 가기 위해 git remote set-url origin <NEW_URL> 마법을 사용한다. 이 외에도 오픈소스에 기여하는 프로 기여자들은 원격 원본 주소를 upstream이라는 우아한 별명으로 하나 더 심어두어, 두 개의 다른 세계와 동시에 교신하는 화려한 멀티 태스킹 기예를 선사하기도 한다.
4. 실제 사용 예시
연결된 원격 저장소를 확인하고 origin을 등록하는 기본 흐름이다. 로컬에서 만든 저장소를 GitHub 같은 원격 저장소에 처음 연결할 때 자주 쓴다.
git remote -v
git remote add origin git@github.com:example/project.git
git push -u origin main
원격 주소가 바뀌었거나 잘못 등록됐을 때는 set-url로 수정한다.
git remote set-url origin git@github.com:example/new-project.git
git remote remove upstream
5. 관련 밈 및 드립
5.1. 남의 레포에 무지성 강제 푸시 시도
아무 생각 없이 매력적인 남의 깃허브 오픈소스 소스 코드를 로컬로 가져와 수정한 뒤, 권한도 없으면서 git push origin main을 위풍당당하게 날려 403 Forbidden 참교육 에러 메시지를 얻어맞고 멍청하게 얼굴을 붉히는 전통 깊은 백수 개발자들의 자학 드립이다.
5.2. origin 다중 국적 취득
소스를 백업한다는 집념 하에 하나의 로컬 폴더에 origin (깃허브), backup (깃랩), secret (사내 비공개 서버) 등 원격 링크를 오형제처럼 주렁주렁 매달아 두고 커밋 한 번 할 때마다 전 세계 수만 리 오방신장 저장소에 동시 다발적 융단폭격을 때리는 광기 어린 개발자들의 백업 집착 패러디다.
6. 여담
- 상세 정보 조회:
git remote -v(verbose)를 터미널에 가볍게 흘려주면, 밀어 넣기(Push)와 받아오기(Fetch)를 담당하는 각 원격지의 생생한 실주소를 디테일하게 확인할 수 있다. - 이름 바꾸기:
git remote rename old_name new_name명령으로 언제든 촌스러운 오리진 딱지를 떼어버리고 간지 폭풍의 이름으로 세탁할 수 있어 편리하다. - 연결 해제: 관계가 파탄 나거나 로컬 독립 만세를 외치고 싶다면
git remote remove <이름>을 쳐서 가차 없이 통신 위성을 파괴해 버리면 깔끔히 정리된다.