etc./StackOverFlow

Git 저장소를 특정 폴더에 어떻게 복제합니까?

청렴결백한 만능 재주꾼 2021. 11. 19. 23:42
반응형

질문자 :David Smith


명령 실행 git clone git@github.com:whatever 이름을 내 현재 폴더에 디렉토리를 작성 whatever , 그 폴더로 Git 저장소의 내용을 삭제를 :

 /httpdocs/whatever/public

내 문제는 웹 서버의 적절한 위치에 나타나도록 현재 디렉토리에 복제된 Git 리포지토리의 내용이 필요하다는 것입니다.

 /httpdocs/public

리포지토리를 복제한 후 파일을 이동하는 방법을 알고 있지만 이것이 Git을 중단시키는 것 같고 git pull 을 호출하여 업데이트할 수 있기를 원합니다. 어떻게 해야 하나요?



옵션 A:

 git clone git@github.com:whatever folder-name

따라서 right here 사용하십시오.

 git clone git@github.com:whatever .

옵션 B:

.git 폴더도 이동합니다. .git 폴더는 대부분의 그래픽 파일 탐색기에서 숨겨져 있으므로 숨겨진 파일을 표시해야 합니다.

 mv /where/it/is/right/now/* /where/I/want/it/ mv /where/it/is/right/now/.* /where/I/want/it/

첫 번째 줄은 모든 일반 파일을 가져오고 두 번째 줄은 도트 파일을 가져옵니다. shopt -s dotglob )을 활성화하여 한 줄로 수행할 수도 있지만 이 답변에 대한 질문을 하는 경우 이는 아마도 나쁜 솔루션일 것입니다.

더 나은 방법:

작업 복사본을 다른 곳에 보관하고 심볼릭 링크를 만듭니다. 이와 같이:

 ln -s /where/it/is/right/now /the/path/I/want/to/use

귀하의 경우 다음과 같습니다.

 ln -sfn /opt/projectA/prod/public /httpdocs/public

원하는 경우 테스트하기 위해 쉽게 변경할 수 있습니다. 예:

 ln -sfn /opt/projectA/test/public /httpdocs/public

파일을 이동하지 않고. 누군가가 이 줄을 복사하는 경우 -fn 을 추가했습니다 -f 는 강제, -n 은 이미 존재하지 않는 링크와의 원치 않는 상호 작용을 방지합니다).

당신이 그것을 작동하기를 원한다면 옵션 A를 사용하고 다른 사람이 당신이 한 일을 볼 것이라면 옵션 C를 사용하십시오.


Can Berk Güder

이 질문을 하는 많은 사람들이 닮고 있다고 생각하는 예는 이것이다. git 저장소의 내용을 덤프하려는 디렉터리 있는 경우 다음을 실행합니다.

 git clone git@github.com:whatever .

NS "." 끝에는 현재 폴더를 체크아웃 폴더로 지정합니다.


J Wynia

폴더로 이동합니다. 폴더가 비어 있으면 다음을 수행합니다.

 git clone git@github.com:whatever .

또 다른

 git init git remote add origin PATH/TO/REPO git fetch git checkout -t origin/master

csomakk

기본 Git 리포지토리 복제

다음을 사용하여 리포지토리를 복제합니다.

 git clone [url]

예를 들어 open_framework라는 Stanford University Drupal Open Framework Git 라이브러리를 복제하려는 경우 다음과 같이 할 수 있습니다.

 $ git clone git://github.com/SU-SWS/open_framework.git

그러면 (현재 로컬 파일 시스템 위치에) open_framework라는 디렉터리가 생성되고, 그 안에 .git 디렉터리가 초기화되고, 해당 저장소에 대한 모든 데이터가 풀다운되고, 최신 버전의 작업 복사본이 체크아웃됩니다. 새로 생성된 open_framework 디렉토리로 이동하면 거기에 작업하거나 사용할 준비가 된 프로젝트 파일을 볼 수 있습니다.

특정 로컬 폴더에 리포지토리 복제

저장소를 open_framework가 아닌 다른 이름의 디렉토리에 복제하려는 경우 다음 명령줄 옵션으로 지정할 수 있습니다.

 $ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

이 명령은 이전 명령과 동일한 작업을 수행하지만 대상 디렉토리는 mynewtheme입니다.

Git에는 사용할 수 있는 다양한 전송 프로토콜이 있습니다. 앞의 예는 git:// 프로토콜을 사용하지만 SSH 전송 프로토콜을 사용하는 http(s):// 또는 user@server:/path.git도 볼 수 있습니다.


Craig Gjerdingen

git 저장소를 특정 폴더에 복제하려면 -C <path> 매개변수를 사용할 수 있습니다. 예:

 git -C /httpdocs clone git@github.com:whatever

whatever 위에 폴더를 생성하지만 저장소의 내용을 현재 디렉토리에 복제하려면 다음 구문을 사용합니다.

 cd /httpdocs git clone git@github.com:whatever .

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

--separate-git-dir=<git dir> 을 사용하여 작업 트리에서 Git 저장소를 분리하거나 .git 폴더를 제외하는 것을 고려하십시오(예: .htaccess 파일).


kenorb

현재 작업 디렉토리에 복제하려면:

 git clone https://github.com/link.git

다른 디렉토리에 복제하려면:

 git clone https://github.com/link.git ./Folder1/Folder2

도움이 되길 바랍니다 :)


Sarat Chandra

현재 폴더에 복제하려면 다음을 시도해야 합니다.

 git clone https://github.com/example/example.git ./

Luis

파일을 원하는 위치로 이동할 때 .git 디렉토리도 이동합니까? OS 및 구성에 따라 이 디렉토리가 숨겨져 있을 수 있습니다.

여기에는 리포지토리와 지원 파일이 포함되어 있지만 /public 디렉터리에 있는 프로젝트 파일은 현재 체크아웃 커밋(기본적으로 마스터 분기)의 버전일 뿐입니다.


Paul

클론:

 git clone git@jittre.unfuddle.com:jittre/name.git

"특정 분기" 복제:

 git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

Selvamani

용법

 git clone <repository>

<repository>에 있는 리포지토리를 로컬 시스템에 복제합니다. 원본 리포지토리는 로컬 파일 시스템이나 HTTP 또는 SSH를 통해 액세스할 수 있는 원격 시스템에 있을 수 있습니다.

 git clone <repo> <directory>

<repository>에 있는 리포지토리를 로컬 시스템의 <directory> 폴더에 복제합니다.

출처: 저장소 설정


Nagarjun

현재 디렉토리로 체크아웃하려는 경우 .git 저장소를 제거했는지 확인하십시오.

rm -rf .git 다음 git clone https://github.com/symfony/symfony-sandbox.git


alex

어떤 이유로 이 구문은 눈에 띄지 않습니다.

git clone repo-url [folder]

여기서 폴더는 로컬 폴더(로컬 리포지토리가 됨)에 대한 선택적 경로입니다.

Git clone 은 또한 원격 저장소에서 로컬 저장소로 코드를 pull 사실 그것은 사실입니다:

 git clone repo-url = git init + git remote add origin repo-url + git pull

prosti

다음은 제가 하는 방법입니다. 하지만 저를 위해 별칭을 만들었습니다.

 $ cd ~Downloads/git; git clone https:git.foo/poo.git

아마도 이것을 하는 더 우아한 방법이 있을 것입니다. 그러나 나는 이것이 나 자신에게 가장 쉽다는 것을 알았습니다.

다음은 작업 속도를 높이기 위해 만든 별칭입니다. zsh용으로 만들었지만 bash 또는 fish, xyzsh, fizsh 등과 같은 다른 쉘에서 잘 작동해야 합니다.

편집 ~/.zshrc , /.bashrc 좋아하는 편집기 등 (I 쓰는 것, 그래서 광산, Leafpad입니다 $ leafpad ~/.zshrc ).

그러나 내 개인적인 취향은 모든 별칭을 추적하기 위해 zsh 플러그인을 만드는 것입니다. 다음 명령을 실행하여 oh-my-zsh용 개인 플러그인을 만들 수 있습니다.

 $ cd ~/.oh-my-zsh/ $ cd plugins/ $ mkdir your-aliases-folder-name; cd your-aliases-folder-name # In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases' $ leafpad your-zsh-aliases.plugin.zsh # Again, in my case 'ev-aliases.plugin.zsh'

그런 다음 새로 만든 빈 alises.plugin 파일에 다음 줄을 추가합니다.

 # Git aliases alias gc="cd ~/Downloads/git; git clone "

(여기에서 당신의 이름을 내 이름으로 바꿉니다.)

그런 다음 별칭이 작동하도록 하려면 별칭이 (zsh와 함께) 소싱되어야 합니다(또는 그것이 무엇이든 간에). 그렇게 하려면 사용자 정의 플러그인 문서 내에 다음을 추가하십시오.

 ## Ev's Aliases #### Remember to re-source zsh after making any changes with these commands: #### These commands should also work, assuming ev-aliases have already been sourced before: allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear" sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh" #### #################################### # git aliases alias gc="cd ~/Downloads/git; git clone " # alias gc="git clone " # alias gc="cd /your/git/folder/or/whatever; git clone " ####################################

oh-my-zsh 플러그인을 저장하고 allsource 실행하십시오. 작동하지 않는 것 source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh . 그러면 이제부터 allsource 를 사용할 수 있는 플러그인 소스가 로드됩니다.


내 모든 별칭으로 Git 저장소를 만드는 중입니다. Ev's dot-files에서 자유롭게 확인하십시오. 귀하의 필요에 맞게 자유롭게 포크하고 개선하십시오.


Ev-

다음 git 명령을 사용하여 사용자 지정 디렉터리 이름으로 복제할 수 있습니다.

 git clone <git_repo_url> <your_custom_directory_name>

참고: 사용자 정의 디렉토리 는 자동으로 생성되기 때문에 생성할 필요가 없습니다.


Manoj Rana

git cloning ssh 를 사용하는 경우 다음 명령을 사용할 수 있습니다.

git -C path clone git@github.com:path_to_repo.git

예: git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git /home/ubuntu/ 경로에 requests 에 대해 git 저장소를 가져옵니다.


Ankit Singh

git 저장소의 내용을 덤프하려는 디렉토리에 있는 경우 다음을 실행합니다.

 git clone git@github.com:origin .

NS "." 끝에는 현재 폴더를 체크아웃 폴더로 지정합니다.


Riyas TK

위의 답변은 모두 좋지만 허용된 답변에서 BEST 제안된 것처럼 public html 디렉토리의 심볼릭 링크 방식을 사용하는 대신 새로운 방식을 제안하고자 합니다. 서버 가상 호스트 구성에 액세스할 수 있어야 합니다.

저장소 디렉토리를 직접 가리키는 웹 서버의 가상 호스트를 구성하는 것입니다. Apache에서는 다음과 같이 할 수 있습니다.

DocumentRoot /var/www/html/website/your-git-repo

다음은 가상 호스트 파일의 예입니다.

 <VirtualHost *:443> ServerName example.com DocumentRoot /path/to/your-git-repo ... ... ... ... </VirtualHost>

Tarik

For Windows user 1> Open command prompt. 2> Change the directory to destination folder (Where you want to store your project in local machine.) 3> Now go to project setting online(From where you want to clone) 4> Click on clone, and copy the clone command. 5> Now enter the same on cmd . It will start cloning saving on the selected folder you given .

Tarit Ray

원래 게시물의이 줄에 대해 :

"리포지토리를 복제한 후 파일을 이동하는 방법을 알고 있지만 이것이 git을 손상시키는 것 같습니다."

나는 그렇게 할 수 있으며 지금까지 추가, 커밋, 푸시, 풀 작업에 문제가 발생하지 않았습니다.

이 접근 방식은 위에 설명되어 있지만 단계로 분류되지는 않습니다. 나를 위해 작동하는 단계는 다음과 같습니다.

  1. 리포지토리를 새 임시 폴더에 복제
  2. 방금 로컬로 복제한 루트 폴더에 cd
  3. /.git 디렉토리를 포함하여 폴더의 전체 내용을 원하는 기존 폴더에 복사합니다. (리포지토리와 병합하려는 Eclipse 프로젝트를 말하십시오)

방금 파일을 복사한 기존 폴더가 이제 git과 상호 작용할 준비가 되었습니다.


Gene Bo

출처 : http:www.stackoverflow.com/questions/651038/how-do-you-clone-a-git-repository-into-a-specific-folder

반응형