2011-05-01 9 views
44

간단한 로컬 git repo 프로젝트가 있고 이 프로젝트 (폴더 등)를 다른 컴퓨터로 옮기고 거기서부터 작업하고 싶습니다. 나는 낡은 기계에 아무것도 남기고 싶지 않다. (물론 나의 다른 자식 프로젝트를 제외하고). 마치 내가 새로운 기계에서 일 해왔다면 좋겠어요.git repo를 두 번째 컴퓨터로 이동 하시겠습니까?

모든 파일을 해당 컴퓨터로 옮기거나 키에 문제가 있습니까? 두 대의 컴퓨터에서 동일한 키를 사용해야합니까? 단순히 모든 폴더를 이동할 수 없으면 어떻게해야합니까? 이 작업은 복잡해 보이고 워크 플로를 변경하고 싶지 않기 때문에 서버를 사용하는 법을 배우고 설정하는 번거 로움을 피하고 싶습니다.

답변

52

귀하의 경우, 가장 좋은 방법은 폴더 (복사, scp, cp, robocopy -간에)를 새 컴퓨터로 복사하고 이전 폴더를 삭제하는 것입니다.

저는 파블로 산타 크루즈에 완전히 동의하지 않습니다. 복제 란 당신이하고있는 일에 대한 패러다임입니다. 전혀 그렇지 않다. Repo를 새 컴퓨터로 옮기고 있습니다.

이유는이 목적을 위해 복제를 좋아하지 않는다 : 그것은 복제 된 저장소의 각 지점에 대한 원격 추적 브랜치를 생성

  • . 너는 움직이고 있고, 낡은 레포는 없어져.
  • 모든 원격 분기 및 기타 참조는 완전히 무시됩니다.
  • 혹시라도 가지고 있다면 당신은 당신의 후크를 얻지 못한다.
  • git reflog 또는 다른 방법을 사용하여 "손실 된"커밋 등을 얻을 수 없습니다. 특히 repo가 ​​서버 역할을했지만 인식해야 할 것이 있다면 큰 문제는 아닐 수도 있습니다.

git repo를 백업하는 방법을 검색하면 git clone이 맨 위 대답에 포함되지 않습니다. 그래서 그것은 레포를 움직이는데 사용해서는 안됩니다!나는 또한 git clonegit clone의 repo 떨어져 노출되는 git clone --mirror의 repo (다른 의미 REPO을 유지 --mirror 옵션을 가지고 있기 때문에 단지 git clone가 적절한 해답이 될 수 없다는 느낌의 차이는 제가 위에서 언급 한 대부분입니다). 내가 복사 REPO로 무엇을 얻을 알고 때문에 사본을 할 것 - 같은 REPO를!

  • 를 복제하는 동안 당신은 새 시스템에 다른 자식 버전이있을 수 있습니다

    1. 그것은 빨리 자식과 같은 것입니다 몇 가지 최적화를 수행하고 사본은 다른의 REPO를 사용할 수 없게 될 수 있습니다

      하면 자식 클론을 고려 버전 (요즘에는별로 일반적이지 않음). 그러나 실제로 이것은 복사를위한 또 다른 전문가 일 수 있습니다. 이것은 새로운 컴퓨터가 다른 자식 버전을 가지고 있다는 것을 알려줄 것이기 때문입니다.

  • +10

    다른 사람들은이 방법을 너무 복잡하게 만들고 있습니다. 전체 프로젝트 디렉토리를 가져와 새 시스템에 복사하십시오. 끝난. – kubi

    +0

    좋은 소리. 열쇠 나 뭔가를 생성해야한다는 것을 기억합니다. 그냥 복사하고 이전 버전을 삭제하면 제대로 작동합니까? –

    +0

    나는 '\ * : \ *'와 같은 것을 사용하여 원격 브랜치를 보존 할 수 있지만 정확한 구문을 알 수는 없으며 google 키워드의 암캐라고 읽었습니다. @manojlds에 대해 아는 것이 있습니까? 당신이 정교 할 수 있니? 브랜치가 보존 되었다면 마치 중요한 문제 (후크 제외) 대부분을 해결할 것입니다. –

    -1

    복사하는 대신 clone 저장소를 사용하는 것이 좋습니다. 복제는 당신이 성취하고자하는 바른 패러다임입니다. 복제 된 프로젝트에는 모든 git 메타 데이터 및 정보도 포함됩니다. 대상 시스템에서

    :

    대신 당신은 또한 저장소에 액세스 할 수 ssh:// 또는 http:// 프로토콜을 사용할 수 git://를 사용
    $ git clone git://your-repo/proj proj 
    

    . 자세한 내용은 git 설명서를 참조하십시오.

    +0

    컴퓨터 2. 복제는 컴퓨터 1. RTM에 컴퓨터 2. 풀에 밀어 커밋, 커밋 및 컴퓨터 1에 REPO를 밀어 넣습니다. – RyanScottLewis

    +1

    @coolryguy : 세 번째 "중앙"저장소가 있다고 가정합니다. – KingCrunch

    +0

    나는 명확하지 않다 - 나는 복사하고 있지 않다, 나는 움직이고있다. 나는 그것이 원래의 컴퓨터에서 공간을 차지하기를 원하지 않는다. 그래도이 작업을 수행하고 이전 폴더를 삭제해야합니까? –

    -1

    모든 복제본은 또한 repo이기 때문에 두 번째 컴퓨터에서 첫 번째 복제본 만 복제하면됩니다.

    2

    예. 데이터를 다른 컴퓨터로 복사하는 것으로 충분합니다. 자식 복제본을 사용하는 것은 거의 같은 일이지만 복제하려는 컴퓨터를 원격 원본으로 설정합니다. 이는 원하지 않을 수도 있습니다.

    +0

    '자식 원격 RM은 origin' – KingCrunch

    +0

    오른쪽, 즉 내가 원하는 것이 아니다. 원본 컴퓨터에서 추적하지 않고 프로젝트를 옮기고 싶습니다. 하지만 단순히 내 열쇠를 엉망으로 움직일 것입니까? 새 컴퓨터에 새 컴퓨터를 설치해야합니까? –

    관련 문제