Skip to main content

GitHub CLI에서 GitHub Codespaces 사용

ghGitHub 명령줄 인터페이스를 사용하여 명령줄에서 직접 GitHub Codespaces를 사용할 수 있습니다.

GitHub CLI 정보

GitHub CLI는 컴퓨터의 명령줄에서 GitHub를 사용하기 위한 오픈 소스 도구입니다. 명령줄에서 작업하는 경우 GitHub CLI을(를) 사용하여 시간을 절약하고 컨텍스트 전환을 방지할 수 있습니다. 자세한 내용은 "GitHub CLI 정보"을 참조하세요.

GitHub CLI에서 GitHub Codespaces을(를) 사용하여 다음을 수행할 수 있습니다.

GitHub CLI 설치

GitHub CLI에 대한 설치 지침은 GitHub CLI 리포지토리를 참조하세요.

GitHub CLI 사용

gh auth login을 아직 수행하지 않은 경우 실행하여 GitHub 계정으로 인증합니다.

gh를 사용하여 GitHub Codespaces 작업을 하려면 gh codespace SUBCOMMAND 또는 해당 별칭 gh cs SUBCOMMAND를 입력합니다.

GitHub Codespaces 작업을 하는 데 사용할 수 있는 일련의 명령의 예로 다음을 수행할 수 있습니다.

  • 현재 codespace를 나열하여 특정 리포지토리에 대한 codespace가 있는지 확인합니다.
    gh codespace list
  • 필요한 리포지토리 분기에 대한 새 codespace를 만듭니다.
    gh codespace create -r github/docs -b main
  • 새 codespace로 SSH합니다.
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • 로컬 머신에 포트를 전달합니다.
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

GitHub Codespaces에 대한 gh 명령

아래 섹션에서는 사용 가능한 각 작업에 대한 예제 명령을 제공합니다.

각 명령에 사용 가능한 모든 옵션에 대한 세부 정보를 포함하여 GitHub Codespaces에 대한 gh 명령의 전체 참조는 “gh codespace”에 대한 GitHub CLI 온라인 도움말을 참조하세요. 대안적으로, 명령줄에서 일반 도움말을 보려면 gh codespace --help를 사용하고 특정 하위 명령에 대한 도움말을 보려면 gh codespace SUBCOMMAND --help를 사용합니다..

참고: 많은 명령과 함께 사용되는 -c CODESPACE_NAME 플래그는 선택 사항입니다. 생략하면 선택할 수 있는 codespace 목록이 표시됩니다.

모든 codespace 목록

gh codespace list

목록에는 다른 gh codespace 명령에서 사용할 수 있는 각 codespace의 고유한 이름이 포함됩니다.

codespace의 분기 이름 끝에 있는 별표는 해당 codespace에 커밋되지 않거나 게시되지 않은 변경 내용이 있음을 나타냅니다.

새 codespace 만들기

gh codespace create -r OWNER/REPO_NAME [-b BRANCH]

자세한 내용은 "리포지토리에 대한 codespace 만들기"을(를) 참조하세요.

codespace의 세부 정보 보기

gh codespace view

이 명령을 실행하면 기존 codespace 중 하나를 선택하라는 메시지가 표시됩니다. 그리고 나서 다음 정보가 표시됩니다.

  • codespace 이름
  • 상태(예: "사용 가능" 또는 "종료")
  • 리포지토리
  • Git 상태
  • codespace를 만드는 데 사용되는 개발 컨테이너 구성 파일의 경로
  • 머신 형식
  • 유휴 시간 제한
  • codespace를 만든 날짜 및 시간입니다.
  • 보존 기간

자세한 내용은 GitHub CLI 참조를 참조하세요.

codespace 중지

gh codespace stop -c CODESPACE-NAME

자세한 내용은 "GitHub Codespaces에 대한 심층 분석"을(를) 참조하세요.

codespace 삭제

gh codespace delete -c CODESPACE-NAME

자세한 내용은 "Codespace 삭제"을(를) 참조하세요.

codespace 이름 바꾸기

gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'

자세한 내용은 "codespace 이름 바꾸기"을(를) 참조하세요.

Codespace 다시 빌드

gh codespace rebuild

전체 다시 빌드를 수행하려면 이 명령의 끝에 --full를 추가합니다. 자세한 내용은 "Codespace에서 컨테이너 다시 빌드"을(를) 참조하세요.

이 명령을 사용하여 codespace를 다시 작성하는 경우 현재 codespace의 시스템에 저장된 파일을 사용합니다 devcontainer.json . 이 문제는 파일의 현재 상태가 원본 제어에 저장되었는지 여부에 관계없이 발생합니다. 자세한 내용은 "개발 컨테이너 소개"을(를) 참조하세요.

codespace로 SSH

원격 codespace 머신에서 명령을 실행하려면 터미널에서 codespace로 SSH할 수 있습니다.

gh codespace ssh -c CODESPACE-NAME

참고: 연결하는 codespace는 SSH 서버를 실행해야 합니다. 기본 개발 컨테이너 이미지에는 자동으로 시작되는 SSH 서버가 포함됩니다. codespace가 기본 이미지에서 만들어지지 않은 경우 devcontainer.json 파일의 features 개체에 다음을 추가하여 SSH 서버를 설치하고 시작할 수 있습니다.

"features": {
    // ...
    "ghcr.io/devcontainers/features/sshd:1": {
        "version": "latest"
    },
    // ...
}


devcontainer.json 파일과 기본 컨테이너 이미지에 대한 자세한 내용은 "개발 컨테이너 소개"을(를) 참조하세요.

GitHub Codespaces은(는) 원활한 인증 환경을 제공하기 위해 로컬 SSH 키를 자동으로 만듭니다. 암호화를 사용하여 연결하는 방법에 대한 자세한 내용은 gh codespace ssh을 참조하세요.

Visual Studio Code에서 codespace 열기

gh codespace code -c CODESPACE-NAME

로컬 컴퓨터에 VS Code이(가) 설치되어 있어야 합니다. 자세한 내용은 "Visual Studio Code에서 Github Codespaces 사용"을(를) 참조하세요.

JupyterLab에서 Codespace 열기

gh codespace jupyter -c CODESPACE-NAME

열려 있는 codespace에 JupyterLab 응용 프로그램을 설치해야 합니다. 기본 개발 컨테이너 이미지에는 JupyterLab이 포함되므로 기본 이미지에서 만든 codespace는 항상 JupyterLab을 설치합니다. 기본 이미지에 대한 자세한 내용은 "개발 컨테이너 소개" 및 devcontainers/images 리포지토리를 참조하세요. 개발 컨테이너 구성에서 기본 이미지를 사용하지 않는 경우 devcontainer.json 파일에 ghcr.io/devcontainers/features/python 기능을 추가하여 JupyterLab을 설치할 수 있습니다. 옵션 "installJupyterlab": true를 포함해야 합니다. 자세한 내용은 devcontainers/features 리포지토리에서 python 기능에대한 추가 정보를 참조하세요.

codespace 간 파일 복사

gh codespace cp [-r] SOURCE(S) DESTINATION

파일 또는 디렉터리 이름에 접두사 remote:를 사용하여 codespace에 있음을 나타냅니다. UNIX cp 명령과 마찬가지로 첫 번째 인수는 원본을 지정하고 마지막 인수는 대상을 지정합니다. 대상이 디렉터리인 경우 여러 원본을 지정할 수 있습니다. 원본이 디렉터리인 경우 -r(재귀) 플래그를 사용합니다.

codespace의 파일 및 디렉터리 위치는 원격 사용자의 홈 디렉터리를 기준으로 합니다.

예제

  • 로컬 머신에서 codespace의 $HOME 디렉터리로 파일을 복사합니다.

    gh codespace cp myfile.txt remote:

  • codespace에서 리포지토리가 체크 아웃된 디렉터리에 파일을 복사합니다.

    gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME

  • codespace에서 로컬 머신의 현재 디렉터리로 파일을 복사합니다.

    gh codespace cp remote:myfile.txt .

  • 세 개의 로컬 파일을 codespace의 $HOME/temp 디렉터리에 복사합니다.

    gh codespace cp a1.txt a2.txt a3.txt remote:temp

  • codespace에서 로컬 머신의 현재 작업 디렉터리로 세 개의 파일을 복사합니다.

    gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .

  • 로컬 디렉터리를 codespace의 $HOME 디렉터리에 복사합니다.

    gh codespace cp -r mydir remote:

  • 디렉터리를 codespace에서 로컬 머신으로 복사하여 디렉터리 이름을 변경합니다.

    gh codespace cp -r remote:mydir mydir-localcopy

사용할 수 있는 추가 플래그를 포함하여 gh codespace cp 명령에 대한 자세한 내용은 GitHub CLI 설명서를 참조하세요.

codespace의 포트 수정

codespace의 포트를 로컬 포트로 전달할 수 있습니다. 프로세스가 실행되는 동안 포트는 전달된 상태로 유지됩니다. 포트 전달을 중지하려면 Control+C를 누릅니다.

gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME

전달된 포트의 세부 정보를 보려면 gh codespace ports를 입력 한 다음 codespace를 선택합니다.

전달된 포트의 표시 유형을 설정할 수 있습니다. 세 가지 표시 여부 설정이 있습니다.

  • private - 자신에게만 표시됩니다. 이는 포트를 전달할 때 기본 설정입니다.
  • org - 리포지토리를 소유한 조직의 구성원에게 표시됩니다.
  • public - URL 및 포트 번호를 아는 모든 사용자에게 표시됩니다.
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

하나의 명령을 사용하여 여러 포트에 대한 표시 유형을 설정할 수 있습니다. 예시:

gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME

자세한 내용은 "codespace의 포트 전달"을(를) 참조하세요.

액세스 codespace 로그

codespace에 대한 생성 로그를 볼 수 있습니다. 이 명령을 입력하면 SSH 키에 대한 암호를 입력하라는 메시지가 표시됩니다.

gh codespace logs -c CODESPACE-NAME

생성 로그에 대한 자세한 내용은 “GitHub Codespaces 로그”를 참조하세요.

원격 리소스 액세스

GitHub CLI 확장을 사용하여 codespace와 로컬 컴퓨터 간에 브리지를 만들 수 있으며, codespace는 컴퓨터에서 액세스할 수 있는 원격 리소스에 액세스할 수 있습니다. 확장 사용에 대한 자세한 내용은 “GitHub CLI 사용을 통한 원격 리소스 액세스”를 참조하세요.

참고: GitHub CLI 확장은 현재 베타로 제공되며 변경될 수 있습니다.

codespace의 컴퓨터 형식 변경

gh codespace edit -m MACHINE-TYPE-NAME

자세한 내용은 이 "codespace에 대한 컴퓨터 유형 변경"의 "GitHub CLI" 탭을 참조하세요.