본문 바로가기
Tip

github 다수의 저장소를 한번에 로컬로 가져오기

by leopard4 2023. 5. 15.

SSH

깃허브 내계정에 ssh키등록을 선행해야합니다.

 

bash에

ssh-keygen -t rsa -C “본인 GitHub 계정 이메일”

기본 위치(~/.ssh/id_rsa.pub)

cat ~/.ssh/id_rsa.pub (키 복사)

깃허브 Settings -> SSH and GPG Keys

복사한 ssh key(~/.ssh/id_rsa.pub)키를 넣어주시면 됩니다.

 

(ssh 자세한내용은 아래블로그참조)

https://medium.com/@su_bak/git-github-com-permission-denied-publickey-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-76b0ab741c62

 

GPT

누군가의 GitHub 계정에서 로컬로 여러 리포지토리를 복제하고 VS Code(Visual Studio Code)에서 보려면 Git과 스크립트의 조합을 사용할 수 있습니다. 이를 달성하기 위한 단계별 접근 방식은 다음과 같습니다.

  1. Git 설치: 시스템에 Git이 설치되어 있지 않은 경우 Git 공식 웹사이트( https://git-scm.com/ )에서 다운로드하여 설치합니다.
  2. SSH 키 설정(선택 사항): 복제하려는 리포지토리가 비공개인 경우 GitHub 계정에 SSH 키를 설정하는 것이 좋습니다. 이렇게 하면 자격 증명을 반복해서 입력하지 않고도 인증할 수 있습니다. SSH 키 생성에 대한 GitHub의 가이드를 따를 수 있습니다 . -to-the-ssh-agent .
  3. 디렉터리 만들기: 복제된 리포지토리를 저장할 로컬 시스템에 디렉터리를 만듭니다.
  4. 스크립트 만들기: 텍스트 편집기를 열고 스크립트를 만들어 복제 프로세스를 자동화합니다. 다음은 Bash를 사용하는 스크립트의 예입니다.
#!/bin/bash

repositories=(
  "username/repository1"
  "username/repository2"
  # Add more repositories here
)

destination="/path/to/cloned/repositories"

for repo in "${repositories[@]}"
do
  git clone "git@github.com:$repo.git" "$destination/$repo"
done

"username/repository1" 및 "username/repository2"를 복제하려는 실제 GitHub 리포지토리 경로로 바꿉니다. 필요에 따라 어레이 에 더 많은 리포지토리를 추가할 수 있습니다 repositories. destination변수를 3단계에서 만든 디렉터리의 경로로 설정합니다 .

파일 확장명 .sh(예: clone_repos.sh.

  1. 스크립트를 실행 가능하게 만들기: 터미널에서 스크립트를 저장한 디렉토리( clone_repos.sh)로 이동합니다. 다음 명령을 실행하여 스크립트를 실행 가능하게 만듭니다.
chmod +x clone_repos.sh
  1. 스크립트 실행: 터미널에서 다음 명령을 사용하여 스크립트를 실행합니다.
./clone_repos.sh

스크립트는 각 리포지토리를 지정된 대상 디렉터리에 복제합니다.

  1. VS Code에서 복제된 리포지토리를 엽니다. VS Code에서 파일 -> 폴더 열기로 이동합니다(바로 가기 Ctrl+K 또는 Ctrl+O( 'Cmd+K', 'Cmd+O' macOS의 경우) 사용). 리포지토리를 복제한 대상 디렉터리로 이동하고 원하는 리포지토리 폴더를 선택하여 VS Code에서 엽니다.

다음 단계에 따라 GitHub 계정에서 여러 리포지토리를 복제하고 탐색 및 추가 개발을 위해 Visual Studio Code에서 로컬로 열 수 있습니다.

 

 

 

요약

SSH 키등록->

clon_repos.sh 파일생성 ->

sh파일경로에서 git bash ->

$chmod +x clone_repos.sh ->

$./clone_repos.sh

 

clone_repos.sh 세부정보

(수강중인 유튜버 코드팩토리님의 레파지토리로 테스트했습니다)

#!/bin/bash

repositories=(
    "codefactory-co/flutter-lv1-project-dusty-dust"
    "codefactory-co/youtube-dusty-dust-speed-coding"
    "codefactory-co/flutter-lv1-theory-scrollable-widgets"
    "codefactory-co/flutter-lv1-project-calendar-scheduler"
    "codefactory-co/flutter-lv1-project-video-call"
    "codefactory-co/flutter-lv1-theory-future-and-stream-builder"
    "codefactory-co/flutter-lv1-project-chool-check"
    "codefactory-co/flutter-lv1-project-video-player"
    "codefactory-co/flutter-lv1-theory-navigation"
    "codefactory-co/flutter-lv1-theory-buttons"
    "codefactory-co/flutter-lv1-project-random-number-generator"
    "codefactory-co/flutter-lv1-theory-const-constructor"
    "codefactory-co/flutter-lv1-project-u-and-i"
    "codefactory-co/flutter-lv1-project-image-carousel"
    "codefactory-co/typescript-full-course-v1"
    "codefactory-co/javascript-full-tutorial-2023"
    "codefactory-co/flutter-lv1-theory-tabbar"
    "codefactory-co/flutter-lv2-server"
    "codefactory-co/flutter-lv1-project-webview-v4"
    "codefactory-co/golden-rabbit-flutter-novice"
    "codefactory-co/flutter-lv1-project-video-call-6.0.0"
    "codefactory-co/ch15-golden-rabbit-flutter-cf-tube"
    "codefactory-co/ch14-golden-rabbit-flutter-image-editor"
    "codefactory-co/ch13-golden-rabbit-flutter-chool-check"
    "codefactory-co/ch11-golden-rabbit-flutter-video-call"
    "codefactory-co/ch11-golden-rabbit-flutter-vid-player"
    "codefactory-co/ch10-golden-rabbit-flutter-digital-dice"
    "codefactory-co/ch09-golden-rabbit-flutter-u-and-i"
    "codefactory-co/ch08-golden-rabbit-image-carousel"
    "codefactory-co/ch07-golden-rabbit-flutter-web-view"
    "codefactory-co/flutter-lv2-riverpod-theory"
    "codefactory-co/flutter-v1-theory-statefulwidget"
    "codefactory-co/flutter-lv1-theory-statefulwidget-before"
    "codefactory-co/flutter-lv1-theory-row-and-column"
    "codefactory-co/flutter-lv1-project-splash-screen"
    "codefactory-co/flutter-lv1-project-hello-world"
    "codefactory-co/flutter-lv1-project-web-view"
    "codefactory-co/flutter-lv2-rest-api"
    "codefactory-co/golden-rabbit-flutter-calendar-scheduler-server"
    "codefactory-co/golden-rabbit-flutter-calendar-scheduler"
    "codefactory-co/golden-rabbit-flutter-chool-check"
    "codefactory-co/golden-rabbit-flutter-video-player"
    "codefactory-co/golden-rabbit-flutter-cotube"
    "codefactory-co/golden-rabbit-flutter-camera-editor"
)

destination="C:/Users/MH/Documents/clone"

for repo in "${repositories[@]}"
do
  git clone "git@github.com:$repo.git" "$destination/$repo"
done

 

 

완료

 

 

SSH키에관한 추가 정보 ( 좀더깊은내용 )

https://ios-development.tistory.com/335