프로젝트 폴더가없는 자식 복제


85

서버에 대한 액세스 권한을 부여했으며 git repo를 내 루트 폴더에 복제하고 싶습니다. 그러나 git clone을 수행하면 프로젝트 이름으로 폴더가 생성되고 프로젝트 폴더는 내 루트입니다. 내 상위 폴더에 대한 액세스 권한이 없습니다. 내 루트는

/var/www/sites/mysite/

복제 할 때 폴더 구조는

/var/www/sites/mysite/mysite

2
선택한 apache / webserver에서 .git을 제공하지 마십시오.
mnagel

1
이것이 귀하의 질문에 대답합니까? GitHub 저장소의 콘텐츠 복제 (폴더 자체 없음)
Vishrant

답변:


193

git clone대상 디렉터리 인 마지막 인수를 허용하며 기본적으로 프로젝트 이름이지만 변경할 수 있습니다. 귀하의 경우에는 단순히 .다음을 원할 것입니다 .

$ git clone origin-url .

그러나 다음에서 유의하십시오 man git-clone.

기존 디렉토리로의 복제는 디렉토리가 비어있는 경우에만 허용됩니다.


4
git clone @rodrigo ./heaven
a_m_dev

두 레벨 깊이 복제하는 것은 어떻습니까? pom.xml 위에 두 개의 폴더가 있습니까?
Bionix1441

1
@ Bionix1441 : 디렉토리 구조에 대해 잘 모르겠지만 git clone aaa/bbb. 두 단계를 수행하려면 시도 할 수 git clone ..있지만 부모 디렉토리가 비어 있지 않기 때문에 작동하지 않습니다.
rodrigo

구조는 다음과 같습니다 .folder1\folder2\pom.xmlpom.xmlpom.xml
Bionix1441

34

새 저장소를 설정 한 다음 추적 원격 및 분기를 설정할 수도 있습니다.

git init .
git remote add origin git@github.com:user/repo.git
git fetch origin
git checkout master

저장소에 상위 폴더가있는 경우 여전히 작동하지 않습니다
Hittz

업스트림 분기도 일치하도록 설정해야했습니다. git branch --set-upstream-to=origin/master master 그런 다음 로컬 변경 사항을 원격 분기로 푸시해야했습니다. git push --force 이것은 이전 원격 분기를 로컬 최신 복사본으로 대체했습니다.
Daniel ZA

7

이것은 Windows에서도 잘 작동합니다.

git init
git remote add origin git@github.com:user/repo.git
git pull origin master

5

git 저장소는 단순히 저장하는 디렉토리 구조임을 기억하십시오. 즉, 저장소를 잘못된 디렉토리로 복제 할 때 원하는 다른 위치로 디렉토리 내용을 간단히 이동할 수 있으며 저장소 데이터는 그대로 유지됩니다. 따라서 예를 들어 명령 줄에서 다음 명령을 실행할 수 있습니다.

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite`
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite`
$ rmdir /var/www/sites/mysite/mysite

4

프로젝트를 하위 폴더로 복제하고 .git폴더를 포함한 모든 파일을 상위 폴더 (루트)로 이동할 수 있습니다 .


3
왜이 자식 클론 git@github.com처럼, 더 쉽게 수행 할 수 없습니다. 어떤 \
dzona

그것은 rodrigos 대답을 볼 수 있습니다. 하지만 git repo는 자유롭게 이동할 수있는 파일 묶음이라는 것을 알고 있습니다.이 대답은 기억하기 쉽습니다.
mnagel jul.

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