Programing

git 저장소 이동

lottogame 2020. 11. 28. 08:34
반응형

git 저장소 이동


이 질문은 멍청 할 수 있지만 한동안 궁금해했습니다. git 리포지토리에 관한 것이지만 다른 DVCS의 로컬 리포지토리에 대해서도 동일하다고 가정합니다.

내 프로젝트가 시작될 때 다음과 같다고 가정 해 보겠습니다.

  • 계획
    • .git
    • 프로젝트의 다른 모든 폴더

그래서 당신이 그것을 올바르게 설정했을 때 그것이 어떻게 작동할까요?

Project 폴더를 다른 곳으로 옮겼다 고 가정 해 보겠습니다. 변경해야 할 사항이 있습니까? 또는 .git 폴더의 모든 저장소 항목은 Project 위의 전체 파일 트리를 무시하고 Project 폴더에만 상대적입니다.

프로젝트를 옮기는 것이 중요하지 않을 것이라고 확신하지만 확인하고 싶었습니다.


예, 모든 .git것은 상대적입니다. 저장소를 명명 된 원격으로 다른 저장소에 추가 한 경우 해당 저장소의 원격 URL을 변경해야합니다.


하위 모듈이 git에서 상대적이지 않음을 발견했습니다.

따라서 하위 모듈이 포함 된 프로젝트를 이동 .git하려면 하위 모듈의 .git/modules/MODULENAME/config파일 과 상위 파일에 저장된 하위 모듈 구성 파일의 "worktree"속성 을 편집해야 합니다.


현재 리모컨 표시 (물론 선택적 단계) :

$ git remote show origin
* remote origin
URL: git@oldserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
Tracked remote branches
master

우리가해야 할 일은 현재 원본을 제거하고 새 원본을 추가하는 것입니다.

$ git remote rm origin
$ git remote add origin git@newserver:project.git
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
error: refs/remotes/origin/HEAD points nowhere!
New remote branches (next fetch will store in remotes/origin)
master

마지막 명령에서 표시되는 오류에 대해 걱정하지 마십시오. 원점에서 처음 당겨서 수정합니다.

$ git pull
From git@newserver:project.git
* [new branch]      master     -> origin/master
Already up-to-date.
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
Tracked remote branches
master

나는 여전히 힘내에 신선하기 때문에 아마도 그것을하는 더 좋은 방법이지만 이것은 나를 위해 일했습니다.


아니요, 다른 것은 변경할 필요가 없습니다. 그건

  • 스크립트가 GIT_DIR, GIT_WORKTREE 또는 GIT_INDEX를 직접 설정하지 않는다고 가정합니다.
  • 이 사본을 가리키는 외부 저장소가 없습니다.

    • if you do you'll have to repoint them by using

      git remote set-url [--push] origin user@yourhost:/home/user/newlocation/Project
      

(origin should be the name of the remote; origin is the default name when cloning from a remote repo)


You can move the git directory from one machine to another or say, you want to migrate your project folder.

All the information about origin is stored in '.git' folder, which is created when you initialize a git repository under a directory on your system.

Procedure

  1. : Move the project folder to other location.
  2. : If the project folder is being moved to a new machine, then create corresponding SSH key-pair.
  3. : Tell git who you are using: git config --global user.email "your_git_email_id@youremail"

참고URL : https://stackoverflow.com/questions/7949036/moving-a-git-repository

반응형