Git을 현재 디렉토리로 복제하는 방법
나는 일을 해요:
git clone ssh://user@host.com/home/user/private/repos/project_hub.git ./
나는 얻는다 :
치명적 : 대상 경로 '.' 이미 존재하며 빈 디렉토리가 아닙니다.
나는 길을 알고있다. 이미 존재 함. 그리고 나는 디렉토리가 비어 있는지 확인할 수 있습니다. (나는 안에 있고 아무것도 볼 수 없다!)
해당 프로젝트를 현재 디렉토리에 복제하기 위해 여기에서 무엇을 놓치고 있습니까?
단순히 옆에 점을 두십시오
git clone git@github.com:user/my-project.git .
보낸 사람 git help clone
:
기존 디렉토리로의 복제는 디렉토리가 비어있는 경우에만 허용됩니다.
따라서 디렉토리가 비어 있는지 확인하십시오 (로 확인 ls -a
). 그렇지 않으면 명령이 실패합니다.
다음은 아마도 모든 경우에 클론과 완전히 동일하지는 않지만 나를 위해 트릭을 수행했습니다.
git init .
git remote add -t \* -f origin <repository-url>
git checkout master
내 경우 .git/config
에는 복제를 할 때 얻는 파일과 동일한 파일 이 생성 됩니다.
@Andrew가 여기에 명확하게 답변했습니다 . 그러나 디렉토리가 비어 있지 않은 경우에도 간단하게 작동합니다.
git init .
git remote add origin <repository-url>
git pull origin master
repo를 복제하려면 임시 디렉토리로 이동하여 프로젝트를 복제하십시오.
git clone ssh://user@host.com/home/user/private/repos/project_hub.git
이것은 물건을 project_hub
디렉토리에 복제합니다 .
복제가 완료되면이 디렉토리를 원하는 곳으로 이동할 수 있습니다.
mv project_hub /path/to/new/location
이것은 안전하며 마법의 물건을 필요로하지 않습니다.
git clone your-repo tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
하다
git clone https://user@bitbucket.org/user/projectname.git .
디렉토리는 비어 있어야합니다
현재 디렉토리가 비어 있으면 다음과 같이 작동합니다.
git clone <repository> foo; mv foo/* foo/.git* .; rmdir foo
@StephaneDelcroix의 답변 외에도 다음을 사용하십시오.
git clone git@github.com.user/my-project.git .
사용하여 현재 디렉토리가 비어 있는지 확인하십시오.
ls -a
솔루션 :이 경우 솔루션은을 사용 dot
했으므로rm -rf .* && git clone ssh://user@host.com/home/user/private/repos/project_hub.git .
rm -rf .* &&
디렉토리가 비어 있다고 확신하면 생략 할 수 있습니다.
크레딧은 아래 의견에 @James McLaughlin으로 이동하십시오.
@GoZoner의 답변 개선 :
git clone <repository> foo; shopt -s dotglob nullglob; mv foo/* .; rmdir foo
shopt 명령은 이 SO 답변 에서 가져 왔으며 Bash에서 'mv'명령의 동작을 변경하여 .git 디렉토리 및 기타 숨겨진 파일을 포함 해야하는 도트 파일을 포함시킵니다.
또한 현재 디렉토리 (.)가 비어있는 경우에만 그대로 작동하지만 복제 된 저장소에있는 파일 중 현재 디렉토리에있는 파일과 이름이 같은 파일이없는 한 작동합니다. 현재 디렉토리의 내용을 신경 쓰지 않으면 'mv'명령에 -f (강제) 옵션을 추가 할 수 있습니다.
나는 똑같은 필요가 있었다. 필자의 경우 웹 서버 설치로 생성되는 표준 웹 폴더가 있습니다. 이 그림의 목적 상 이것이
/server/webroot
webroot에는 다른 표준 파일 및 폴더가 포함되어 있습니다. 내 저장소에는 사이트 특정 파일 (html, javascript, CFML 등)이 있습니다.
내가해야 할 일은 :
cd /server/webroot
git init
git pull [url to my repo.git]
대상 폴더에서 git init을 수행 할 때는 두 가지 중 하나가 발생하지 않으므로주의해야합니다.
- 내 경우에는 git 파일이 없다는 메시지와 함께 git pull이 실패합니다.
치명적 : 자식 저장소가 아니거나 부모 디렉토리가 아닙니다 : .git
- 폴더의 상위 경로 어딘가에 .git 파일 이 있으면 .git 파일이 포함 된 THAT 상위에 풀링 된 저장소가 작성됩니다. 이것은 나에게 일어 났고 나는 그것에 놀랐다. ;-)
이것은 webroot 폴더에있는 "표준"파일을 방해하지는 않았지만 후속 커밋에 부주의로 추가되는 것을 방지하기 위해 .gitignore 파일에 추가해야했습니다.
이것은 비어 있지 않은 디렉토리로 "복제"하는 쉬운 방법 인 것 같습니다. 풀에 의해 생성 된 .git 및 .gitignore 파일을 원하지 않는 경우, 풀 후 삭제하십시오.
@phatblat의 답변을 더 개선하십시오 :
git clone --no-checkout <repository> tmp \
&& mv tmp/.git . \
&& rmdir tmp \
&& git checkout master
하나의 라이너로 :
git clone --no-checkout <repository> tmp && mv tmp/.git . && rmdir tmp && git checkout master
흠 ... 절대적으로 절대 전류 경로를 지정 $(pwd)
하면 나를 위해 일했습니다.
git clone https://github.com/me/myproject.git $(pwd)
자식 버전 : 2.21.0
shopt -s dotglob
git clone ssh://user@host.com/home/user/private/repos/project_hub.git tmp && mv tmp/* . && rm -rf tmp
아래와 같이 명령 끝에. (점)을 사용하십시오.
자식 복제 URL .
로 제거
rm -rf. *
문제 또는 더 많은 오류가 발생할 수 있습니다.
/ path / to / folder가 있고 해당 폴더가 아닌 내부의 모든 것을 제거하려면 다음을 실행하십시오.
rm -rf / 경로 / to / 폴더 / *
내가 찾은 것은 다음과 같습니다.
나는 이것을 본다 :
fatal: destination path 'CouchPotatoServer' already exists and is not an empty directory.
검색 중에 나는 다음과 같이 넘어졌다.
https://couchpota.to/forum/viewtopic.php?t=3943
Clinton.Hall의 항목을 찾으십시오.이 작업을 시도하면 (내가했던 것처럼) access denied
응답을 얻었을 것입니다. 내 첫 번째 단서가 있었으므로 초기 오류 (나를 위해)는 실제로 잘못된 루트로 뛰어 들었습니다. 발행물.
창에서 이것에 대한 해결 방법 : 실행 확인 cmd
또는 git elevated
다음 실행 :
git clone https://github.com/RuudBurger/CouchPotatoServer.git
위의 문제는 내 문제이며 단순히 높이는 것이 나에게 효과적이었습니다.
에 의해 새 파일을 만드는 것이 유용 mkdir filename
합니다. 명령을 실행하면 git clone xxxxx
내 컴퓨터에서 작동합니다.
그래서 루트 디렉토리에서 숨겨진 .git 폴더를 삭제 한 다음 'git clone repo'에 마침표를 추가하여 동일한 오류를 수정했습니다. 내 루트 / dist 폴더에 이것은 vue-cli 웹팩 프로젝트와 관련이 있습니다. 따라서 다른 사람들이 말하는 것은 옳습니다. 일반적으로 복제하려는 폴더 또는 상위 폴더 또는 해당 폴더의 루트에 git 추적이 있음을 의미합니다!
해결책 Windows
은 저장소를 다른 폴더에 복제 한 다음 원래 위치에 복사하여 붙여 넣거나 .git
보이지 않는 폴더를 복사하는 것입니다.
.git
주어진 디렉토리의 디렉토리를 포함하여 내용을 삭제하거나 이동 하십시오.
Android 스튜디오와 같은 자동화 된 도구 Rebuild
가 문제를 해결합니다.
자세한 내용 :
표시된 jarresolver
git repo
경로 에 대한 오류는 다음과 같습니다.temp\jarresolver\
temp\jarresolver\
숨겨진 .git
디렉토리를 포함하여 디렉토리의 내용을 삭제했습니다 .
그게 전부 였고 복제가 필요하지 않았습니다.
내가했을 때 Rebuild
Android Studio 복제 자체 및 빌드가 성공했습니다.
repo가 비공개 인 경우 먼저 ssh 키를 사용하십시오 => git clone git@github.com : yourusername / yourrepo.git 그렇지 않으면 => git clone https://github.com/yourusername/yourrepo.git
나는이 질문을 여러 번 보았습니다 git pull
. 디렉토리 내에서 트릭을 수행 할 것이라고 지적하고 싶습니다 .
내가 여기에 뭔가 빠진 경우가 아니면-그것은 나를 위해 일했다.
참고 URL : https://stackoverflow.com/questions/9864728/how-to-get-git-to-clone-into-current-directory
'Programming' 카테고리의 다른 글
APK 설치시 INSTALL_FAILED_NO_MATCHING_ABIS (0) | 2020.02.17 |
---|---|
클래스와 인스턴스 메소드의 차이점은 무엇입니까? (0) | 2020.02.17 |
스크립트 태그-비동기 및 지연 (0) | 2020.02.17 |
href 및 onclick의 JavaScript 함수 (0) | 2020.02.17 |
프로젝트에서 CocoaPods를 제거하는 방법? (0) | 2020.02.17 |