Git 원격 저장소를 다른 Git 원격 저장소로 커밋 로그를 포함해 온전히 옮길 때 사용
2번 개발자는 새로운 저장소를 생성합니다.
2번 개발자는 1번 개발자의 저장소를 clone 합니다.
👉 "기존 Repository".git 폴더 생성됨.
git clone --mirror {1번 개발자 페어 프로그래밍 저장소 주소}
cd {1번개발자의저장소이름}.git
2번 개발자는 새롭게 생성한 원격 저장소를 복사해온 프로젝트의 원격 저장소로 설정합니다.
git remote set-url --push origin {2번 개발자의 새롭게 생성한 저장소 주소}
2번 개발자는 프로젝트를 Push 합니다.
git push --mirror
새 원격 레포를 클론 받은 후, 그곳에서 이어서 작업해야함
git pull origin master, git fetch경우 1번개발자 저장소의 최신데이터로 가져오게 됨
그렇기 때문에 .git으로 접속하여 원격저장소를 set해주는 것이 편리함.
pull 원하는 경우, git pull 후 커밋 해야 2번 개발자 저장소에 반영 됨
그럴 경우, 아래 방법으로 진행하면 오류가 뜨지 않음
# git mirror 명령어
cd 작업할위치로이동
git clone --bare 기존원격레포주소
cd 기존원격레포이름.git
git remote set-url --push origin 새원격레포주소
git push --mirror
pull과 다르게 원격저장소의 커밋을 로컬 저장소로 가져옴
로컬 저장소는 원래 가지고 있던 로컬 저장소의 최근 커밋 위치를 가리키고, 원격저장소는 가져온 최근 커밋을 가리킴
git fetch origin
git branch -r # fetch를 확인할 수 있는 브랜치 내역들이 나옴(화살표 확인)
git checkout origin/master # 브랜치 접속
브랜치 접속 후 변경 된 파일을 열어보면 원격저장소에서 수정한 내용이 추가되어있음.
fetch로 가져온 내용은 로컬 디렉토리에 저장되지는 않고 브랜치로 checkout하여 변경 된 내용들을 확인만 하는 것.