개요
필자는 사용하는 컴퓨터가 여러대 있다. 회사에서도 쓰고, 노트북으로 이동하면서도 쓰고, 집에서도 쓰고 리눅스를 셋팅하려는 컴퓨터도 있고, 이렇게 사용하면서 생각날때마다 다른 프로젝트를 진행하고 싶어서 알아보게 되었다.
아래부분의 한번에 푸시하기는 2중 백업하는 용도로 사용하면 될거 같고, 나같은 경우는 ftp 서버와(주로 백업 및 이용) 깃허브는 회사에서의 코드 하려고 한다.
일단 이 글을 이해하려면 기본적인 깃 커맨드와 working flow 를 알아야 한다.
바로들어가자면
- 멀티플 깃 저장소 정하기
- git remote add all REMOTE-URL-1
- 첫번째 푸시 url 등록하기 : git remote set-url --add --push all REMOTE-URL-1
- 두번째 push 등록하기 : git remote set-url --add --push all REMOTE-URL-2
- Git push all BRANCH로 브랜치를 모든 원격 저장소로 푸시 - BRANCH 에 정한 브랜치 이름을 넣는다
- 여러개의 원격 저장소에서 풀을 할수 없다, 하지만 fetch 업데이트로 가능하다. git fetch --all
다중 리모트 추가하기
git init할때 리파짓토리를 시작한다.
보통 원격저장소와 동기화 시키는 목적으로 사용하는데, 동기화 하기 위해서는 원격 저장소가 존재하는 곳을 명기해야한다.
첫번째 내 프로젝트에 원격저장소를 추가한다.
git remote add REMOTE-ID REMOTE-URL
관례적으로 origin은 original을 뜻한다. 보통 처음에 만드는 리파짓토리(원격저장소)
첫번째 리모트 추가하기 : github
git remote add origin git@github.com:깃허브아이디/리파짓토리이름.git
두번째 리모트 추가하기 : bitbucket
git remote add upstream git@bitbucket.org:아디/리파짓토리.git
리파짓토리의 이름은 고유하게 이름 짓는다.
예) origin 과 upstream
멀티플 리모트를 추가할수 있지만,
보통 프로젝트의 브랜치마다 하나의 리모트 브랜치를 추적할수 있게 설정될수 있다. 다음의 예로 브랜치로 리모트 브랜치를 추적하게 셋팅할수 있다.
#로컬브랜치를 바꾼다
git checkout BRANCH
# 로컬브랜치를 리모트브랜치 트랙하게 만든다
git branch -u origin/BRANCH
BRANCH 는 리모트 브랜치 보통 로컬과 같은 이름
원격 저장소 URL 바꾸기
이미 추가한 원격 저장소의 URL 을 바꾸고 싶다면, 아래의 커맨드를 따라한다.
#문법은 git remote set-url REMOTE-ID REMOTE-URL
git remote set-url upstream git@foobar.com:깃아이디/리파짓토리이름.git
등록된 리모트 리스트를 보려면
$git remote -v
으로 확인할수 있다.
origin git@github.com:jigarius/toggl2redmine.git (fetch)
origin git@github.com:jigarius/toggl2redmine.git (push)
upstream git@bitbucket.org:jigarius/toggl2redmine.git (fetch)
upstream git@bitbucket.org:jigarius/toggl2redmine.git (push)
리모트 지우기
더이상 필요하지 않은 리모트를 지우기
# git remote remove REMOTE-ID
git remote remove upstream
여러 리모트에 푸시하기
이번에는 한번의 푸시로 멀티플 리모트에 푸시하는 방법을 알아보자
리모트 아이디를 정하면 되는데 알기쉽게 all 을 설정하는것도 좋지만 개인의 아이디어에 따라 다른것으로 설정해도 좋다
# all 을 참조하게 url을 적어 만들기
git remote add all git@github.com:깃아이디/리파짓토리이름.git
# push URL 로 다시 등록하기
git remote set-url --add --push all git@github.com:깃아이디/리파짓토리이름.git
#푸시URL 리모트에 추가하기. git push 하면 올라갈 주소를 적는다.
git remote set-url --add --push all git@bitbucket.org:bitbucket아이디/리파짓토리이름.git
If you don’t want to create an extra remote named all, you can skip the first command and use the remote origin instead of all in the subsequent command(s).
all이라는 이름을 만들기 싫다면, 첫번째 명령어를 스킵하고 origin 이라는 커맨드를 사용하면 된다.
이제 한번의 커맨드로 모든 리모트에 push 할수 있다!
# BRANCH 를 자신의 브랜치로 바꿔준다.
git push all BRANCH
멀티플 리모트로 부터 풀하기
안타깝지만 풀은 안된다. 대신에 fetch 를 사용하자
git fetch --all
모든 리모트에서 정보를 가져올것이다.
최신버전의 특정 브랜치로 바꿀수 있다.
#사용할 브랜치의 이름으로 바꾼다
git checkout BRANCH
#리셋
git reset --hard REMOTE-ID/BRANCH
- Read the official documentation about git remotes.
- Share any tips you might have for working with multiple git remotes.
'개발환경 > git' 카테고리의 다른 글
Git ignore 적용하기 (0) | 2023.04.19 |
---|
댓글