Git 저장소 디렉토리 위치를 변경하십시오.


200

Windows 용 Git / Github에서이 디렉토리가있는 리포지토리가있는 경우 : 리포지토리 C:\dir1\dir2파일을로 이동하려면 어떻게해야 C:\dir1합니까? 분명히 물리적으로 파일을 복사하여 붙여 넣을 수는 있지만 Git 측에서 무엇을해야합니까?

나는 GitHub 에이 저장소를 가지고 있으며 Windows 용 Git Bash와 GitHub를 사용합니다.


1
이 답변을보십시오 . 다른 폴더 또는 다른 컴퓨터로 이동하는 것과 같습니다.
rekenerd

답변:


234

전체 작업 디렉토리 내용 (숨겨진 .git디렉토리 포함)을 복사하면 됩니다. 이것은 전체 작업 디렉토리를 새 디렉토리로 옮기고 GitHub의 원격 저장소에는 영향을 미치지 않습니다.

Windows 용 GitHub를 사용하는 경우 위와 같은 방법으로 저장소를 이동할 수 있습니다. 그러나 애플리케이션에서 저장소를 클릭하면 해당 저장소를 찾을 수 없습니다. 이 문제를 해결하려면!로 파란색 원을 클릭하고 찾기를 선택한 다음 새 디렉토리를 찾으십시오.


3
그러나 Windows 용 GitHub가 로컬 저장소를 추적하는 방법은 어떻습니까? 그 끝에 설정이 있어야합니다.

3
Windows 에서이 작업을 수행하면 새 저장소를 만들어야했습니다.
472084

1
@Jleagle,이 답변이 게시 된 후 변경되었을 수도 있습니다. 필요한 경우 살펴보고 답변을 업데이트하겠습니다.
ctor

2
새로운 저장소를 만들 것을 요구해서는 안됩니다. 그런 일이 발생하면 분명히 git 파일을 놓쳤을 것입니다 (숨겨진 파일 일 수 있습니다). 나에게 일어 났고, 다시 시도했을 때 나는 일부를 놓친 것을 알았습니다.
Juan

1
나는 승리하고 있습니다. 폴더를 새 위치로 수동으로 옮긴 후 Git GUI App을 다시 열고 프로젝트 폴더를 수동으로 재배치했습니다. 이 방법은 저에게 효과적입니다.
kuncevic.dev

42

나는 그 질문에 대해 확신하지 못하므로 다음 두 가지 답변이 있습니다.

저장소를 이동하려면 다음을 수행하십시오.

.git디렉토리 와 함께 전체 저장소를 복사하기 만하면 됩니다.

.git구조 에는 절대 경로가 없으며 이동을 방해하는 요소가 없으므로 이동 후 수행 할 작업이 없습니다. github에 대한 모든 링크 (참조 .git/config)는 이전과 같이 작동합니다.

저장소 내에서 파일을 이동하려면 다음을 수행하십시오.

파일을 옮기기 만하면됩니다. 그런 다음에 나열된 변경 사항을 추가하십시오 git status. 다음 commit은 필요한 일을 할 것입니다. 파일이 복제되지 않는다는 것을 알게되어 기쁩니다 .git에서 파일을 이동하는 것은 거의 비용이 들지 않습니다.


1
그러나 Windows 용 GitHub가 로컬 저장소를 추적하는 방법은 어떻습니까? 그 끝에 설정이 있어야합니다.

@ user596075 .git디렉토리에 있습니다.
OrangeDog

24

을 사용하는 경우 GitHub Desktop다음 단계를 수행하십시오.

  1. GitHub Desktop현재 디렉토리 경로에 열린 파일이있는 다른 모든 응용 프로그램을 닫습니다 .
  2. 위에서 언급 한대로 전체 디렉토리를 새 디렉토리 위치로 이동하십시오.
  3. GitHub Desktop파란색 (!) "리포지토리를 찾을 수 없음"아이콘을 열고 클릭하십시오. 그런 다음 대화 상자가 열리고 경로를 새 위치로 지정할 수있는 팝업이 열리는 "찾기 ..."단추가 표시됩니다.

8

질문은 Git for Windows와 관련이 있지만 Visual Studio Tools For Git (VS 2012의 확장, VS 2013의 기본 지원)을 검색 할 때도 최고의 결과 인 것 같습니다.

위의 솔루션을 가이드로 사용하여 Visual Studio Git Tools를 사용하면 리포지토리 (또는 모든 리포지토리의 전체 디렉터리 구조)를 매우 쉽게 로컬로 이동할 수 있습니다.

1) Visual Studio를 닫습니다. 2) Repo 폴더를 새 위치로 이동하십시오. 3) Visual Studio를 엽니 다. 팀 탐색기를 엽니 다. "연결"보기 (위의 플러그 아이콘)로 전환하십시오. 3a) Repos에 여전히 기존 경로가 표시되면 새로 고침을 클릭하여 업데이트를 강제 실행하십시오. 4) 로컬로 이동 한 Repos는 더 이상 " Local Git Repositories "에 표시되지 않아야합니다 . 5) 추가 (새 또는 복제 아님 )를 클릭하고 추가 할 repo 폴더를 선택하십시오.

5 단계에서 검색 경로 만 제공하면 자동으로 모든 하위 폴더가 포함됩니다. 단일 루트 아래에 여러 개의 저장소가 구성되어 있으면 (동일한 상위 폴더를 갖는 독립적 인 저장소) 부모를 선택하면 그 아래에있는 모든 저장소가 포함됩니다.

예 : E : \ Repos \ RepoA E : \ Repos \ RepoB E : \ Repos \ RepoC

Visual Studio Team Explorer에서 [추가]> "E : \ Repos \"> [추가]는 세 개 모두를 로컬 리포지토리로 반환합니다.


6

이전 답변은 모두 디렉토리를 이동할 수 있으며 .git 구조에는 절대 경로가 없다고 말하는 것처럼 보입니다. Cygwin에서 git을 사용할 때 이것이 사실이 아니라는 것을 알았습니다.

git repo를 옮길 때 (실제로 백업에서 복원했지만 드라이브 구조가 새 시스템에서 변경되면 다른 드라이브로 복원했습니다). 다음과 같은 오류 메시지가 나타납니다.

fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory

grep을 사용하여 [core] 섹션의 .git / config 파일에서 git repo의 절대 경로를 보유하는 작업 트리 변수라는 것을 알았습니다. 이것을 변경하면 문제가 해결되었습니다.


4

Visual Studio git 플러그인을 사용하고 있으며 IIS에서 실행되는 일부 웹 사이트가 있습니다. 나를 위해 일한 간단한 방법 :

  1. Visual Studio를 닫습니다.

  2. 코드 이동 (git 폴더 포함)

  3. 새로운 위치에서 솔루션 파일을 클릭하십시오

이동 된 기존 로컬 git 파일을 사용하여 새 위치에 대한 매핑을 새로 고칩니다. Visual Studio로 돌아 오면 팀 탐색기 창에 새 위치의 저장소가 표시됩니다.


2

Windows 용 Github Desktop을 사용하고 리포지토리의 위치를 ​​옮기고 싶었습니다. 디렉토리를 이동하고 소프트웨어에서 새 위치를 선택해도 문제 없습니다. 그러나 잘못된 디렉터리를 설정하면 치명적인 오류가 발생하고 두 번째로 좋은 디렉터리로 재배치 할 수 없습니다. 그래서 그것을 고치기 위해. 잘못된 디렉토리에 프로젝트 파일을 복사하고 Github Desktop에서 해당 파일을 재구성 한 후 프로젝트를 다른 폴더로 다시 이동하고 소프트웨어에서 재배치 할 수 있습니다. 이를 위해 Github Desktop을 닫을 필요가 없으며 라이브 폴더를 확인합니다.

이것을 희망하면 누군가를 도울 것입니다.


1

이것은 나를 위해 작동하지 않았습니다. 예를 들어 c : \ project1 \에서 c : \ repo \ project1 \로 리포지를 이동했으며 Git for windows에는 변경 사항이 표시되지 않습니다.

하위 모듈 중 하나가 "git 저장소가 아니며"이전 경로를 표시하기 때문에 자식 상태가 오류를 표시합니다. 예 (IP를 보호하기 위해 이름이 변경됨)

치명적 : 자식 저장소 아님 : C : /project1/.git/modules/subproject/subproject2 치명적 : 하위 모듈 하위 프로젝트에서 'git status --porcelain'실패

하위 모듈의 .git 파일을 하위 모듈의 리포지토리에 대한 올바른 상대 경로를 가리 키도록 수동으로 편집해야했습니다 (주 리포지토리의 .git / modules 디렉토리에 있음)


1

미래의 보고서 : 2018 년 4 월.

다른 로컬 폴더에있는 Mac 및 Windows에서 로컬 리포지토리를 정규화하고 싶었습니다.

Windows 10 클라이언트는 지루하지만 끔찍하지 않은 "찾을 수 없음"> "찾아보기"루틴을 수행하게했습니다. 또한 나중에 사용할 수 있도록 옵션에서 로컬 "복제 경로"를 업데이트해야합니다.

mac 폴더를 통합 할 때 Github 클라이언트가 다시 폴더를 찾았습니다. 아무 것도하지 않아도됩니다!


0

리포지토리 중 하나를 복제 할 때마다 기본 로컬 경로를 리포지토리에 설정하려면 리포지토리를 한 번만 복제하고 Localpath : / your-path를 설정 한 다음 github에서 해당 경로를 기본 경로로 자동 감지합니다.


이것은 원래의 질문에 대답하지 않는 것 같습니다. 아마도 당신의 답변이 이미 받아 들여진 답변에 무언가를 어떻게 추가하는지 명확히 할 수 있습니까? 감사.
rwp

0

Git 기반 접근 방식은 로컬 복사를 사용 cd하거나 복사하여 붙여 넣은 다음 로컬에서 원격 저장소로 변경 사항을 적용하는 것입니다.

로컬 리포지토리의 상태를 확인하려고하면 실제로 재배치 된 파일 인 "추적되지 않은 변경 사항"이 표시 될 수 있습니다. 이러한 변경 사항을 강제로 적용하려면 다음을 사용하여 이러한 파일 / 디렉토리를 준비해야합니다.

$ git add -A
#And commiting them
$ git commit -m "Relocating image demo files"
#And finally, push
$ git push -u local_repo -f HEAD:master

도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.