ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git 새로운 서버로 옮기기 [Git]
    Git 2017. 11. 22. 13:31
    반응형

    01. Git 서버 옮기기

    - git 서버를 192.168.xxx.1 에서 -> 192.168.xxx.2 로 옮기고 싶을때 사용하는 방법입니다.



    Git bash를 설치 후 가능합니다.


    git 서버 통째로 옮기기 (log, tag포함)


    현재 repository에서 모든 remote branch와 tag를 local index로 불러온다(fetch)


    git fetch origin



    모든 브랜치와 태그를 불러왔더라도 그 사본이 로컬에 저장되어있는 것은 아니다. 레파지토리를 옮기기 위해서는 로컬로 복사해야 한다. 


    로컬로 복사해야하는 브랜치가 있는지 살펴 볼 수 있다. 로컬에 사본을 가지고 있는지 알아보기 위해 로컬과 리모트에 모든 브랜치의 목록을 확인하자.


    git branch -a 


    * master

      remotes/origin/develop

      remotes/origin/master

      remotes/origin/release/0.1


     이 결과값을 통해 쉽게 로컬 사본이 있는지 확인할 수 있다. 리모트 브랜치는 remotes/origin/ 로 시작한다. master 브랜치가 유일하게 로컬에 존재하며, remotes/origin/develop과 remotes/origin/release/0.1은 로컬에 존재하지 않는다. 로컬에 사본을 만들어 보자.


    git checkout -b develop origin/develop

    git checkout -b release/0.1 origin/release/0.1


    모든 파일을 로컬에 저장한 후에, remotes/origin/으로 시작하는 모든 브랜치의 사본이 각각 로컬에 저장 되어있는지 확인할 수 있다. 


    git branch -a


      develop

      master

    * release/0.1

      remotes/origin/develop

      remotes/origin/master

      remotes/origin/release/0.1


    이제 우리는 레파지토리의 모든 브랜치 사본이 로컬에 저장되었다는 것을 확인했고, 새로운 서버 호스트로 레파지토리를 옮길 준비가 되었다.


    새로운 레파지토리의 SSH-cloned URL 을 가지고 있다고 가정하자. 만약 없다면 새로운 레파지토리를 만들어서 SSH-cloned URL을 얻도록 하자


    git remote add new-origin git@github.com:manakor/manascope.git


    이 것은 두개의 remote를 제공해 줄 것이다.  remote host(원래 서버)와 연결된 origin과 새로운 host 서버에 연결된 new-origin이다.


    (Git은 remote라는 개념을 가지고 있는데 이것은 여러분의 레파지토리에 있는 다른 사본에 대한 간단한 URL이다. origin이라는 이름은 original remote 레파지토리를 말하며, 중앙 레파지토리(the primary centeralized repository)로 간주된다.)


    이제 모든 로컬 브랜치를 new-origin이라는 새로운 remote에 푸쉬할 준비가 되었다. 로컬 브랜치를 따로 따로 푸쉬할 수 있지만 다음의 git 명령어를 통해 모든 브랜치를 한꺼번에 실행하여 훨씬 더 빠르게 푸쉬할 수 있다.


    git push --all new-origin


    이 Git 명령어를 이용하여 new-origin에 모든 tag를 푸쉬하도록 하자.


    거의 다 되었다. new-origin을 디폴트 remote로 만들자. 앞으로 할 모든 커밋이 방금 푸쉬한 새로운 레파지토리에 적용되게 할 것이다. 이를 위해 예전 레파지토리 remote를 제거한다.


    git remote rm origin


    그리고 new-origin을 origin으로 이름을 바꾼다. 그러면 바로 디폴트 remote가 된다.


    git remote rename new-origin origin


    (모든 사람들이 origin이라는 디폴트 remote에 익숙할 것이다. 중앙 레파지토리 remote를 origin으로 이름을 붙여서 계속해서 기준을 따르도록 하자.)


    다 됐다!


    여러분의 레파지토리는 새로운 remote와 연결돼 있다(즉, 새로운 호스트에) 모든 브랜치와 태그와 커밋 히스토리가 저장되어 있을 것이다. 앞으로 모든 커밋은 새로운 remote 호스트에 푸쉬될 것이다.





    출처 : http://blog.naver.com/hshui821/220920067576

    반응형

    댓글

Designed by Tistory.