git 저장소를 다른 디렉토리로 이동하고 해당 디렉토리를 git 저장소로 만드는 방법은 무엇입니까? 싶습니다 . newrepo 디렉토리

gitrepo1 디렉토리가 있습니다 . 이 디렉토리는 git 저장소입니다.

  • gitrepo1 을 다른 디렉토리 newrepo 로 옮기고 싶습니다 .

  • newrepo 디렉토리 는 git 기록 손실이없는 새 git 저장소 여야하며 gitrepo1 디렉토리를 포함해야합니다 .

  • gitrepo1 디렉토리 는 색인이 없는 디렉토리 ( newrepo 내부 ) .git여야합니다. 즉, 더 이상 독립적 인 git 저장소 또는 하위 모듈이 아니어야합니다.

어떻게 할 수 있습니까?



답변

아주 간단합니다. Git은 디렉토리 이름이 무엇인지 신경 쓰지 않습니다. 안에있는 것만 신경 쓰죠. 따라서 간단하게 다음을 수행 할 수 있습니다.

# copy the directory into newrepo dir that exists already (else create it)
$ cp -r gitrepo1 newrepo

# remove .git from old repo to delete all history and anything git from it
$ rm -rf gitrepo1/.git

저장소가 크고 기록이 긴 경우 복사본이 상당히 비쌉니다. 쉽게 피할 수 있습니다.

# move the directory instead
$ mv gitrepo1 newrepo

# make a copy of the latest version
# Either:
$ mkdir gitrepo1; cp -r newrepo/* gitrepo1/  # doesn't copy .gitignore (and other hidden files)

# Or:
$ git clone --depth 1 newrepo gitrepo1; rm -rf gitrepo1/.git

# Or (look further here: http://stackoverflow.com/q/1209999/912144)
$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

를 만든 후에는 원하는 경우 안에 newrepo넣을 gitrepo1수 있습니다 newrepo. 절차를 변경하지 않고 gitrepo1다시 작성하는 경로 만 변경합니다 .


답변

조금 늦었고 질문은 이미 답변되었지만 두통없이 수행하려면 :

  1. 와 이전 자식 폴더의 현재 지점 당신이 무엇을 확인 git status하자의는 분기 말 개발
  2. 디렉토리를 새 git 폴더로 변경 한 다음 git clone프로젝트를 repo에서 새 폴더로 변경합니다.
  3. 새 폴더에서 현재 분기를 확인하십시오. git checkout development
  4. 사용하여 이전 한 개 새 폴더를 Syncronize rsync, .git 폴더를 제외 :rsync -azv --exclude '.git' gitrepo1 newrepo/gitrepo1

그런 다음 중단 한 부분을 계속하는 것이 좋습니다.


답변

그것보다 훨씬 간단합니다. 방금 한 작업입니다 (Windows에서는 작동하지만 다른 OS에서는 작동해야 함).

  1. newrepo를 만듭니다 .
  2. gitrepo1newrepo 로 이동합니다 .
  3. .gitgitrepo1 에서 newrepo로 이동 합니다 (한 수준 위로).
  4. 변경 사항을 커밋합니다 (필요에 따라 추적 수정).

Git은 디렉토리를 추가하고 여러 파일의 이름을 변경 한 것을 확인합니다. 별거 아니야.


답변

저는 전문가는 아니지만 .git 폴더를 새 폴더에 복사 한 다음 호출합니다. git reset --HARD


답변


이 글은 Git 카테고리에 분류되었고 태그가 있으며 님에 의해 에 작성되었습니다.