> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parallelane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 클론

> 원격 저장소 복제

원격 저장소를 로컬로 복제해 ParalleLane에 자동으로 등록하고 엽니다. URL을 직접 입력하거나, 계정에 접근 권한이 있는 저장소 목록에서 골라 클론할 수 있습니다.

## 클론 시작하기

사이드바의 **저장소 추가** 버튼은 드롭다운입니다. 두 가지 진입점 중 하나를 고릅니다.

<CardGroup cols={2}>
  <Card title="프로젝트 열기" icon="folder-open">
    이미 로컬에 있는 Git 저장소 폴더를 등록합니다.
  </Card>

  <Card title="원격 프로젝트 열기" icon="cloud-download">
    원격 저장소를 클론한 뒤 자동으로 등록·선택합니다. 이 페이지의 대상입니다.
  </Card>
</CardGroup>

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/remote-clone-dialog.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=da1dd34c9aa774cf055009186c7783a5" alt="저장소 URL, 계정, 접근 가능한 저장소와 위치를 선택하는 원격 저장소 클론 다이얼로그" width="886" height="832" data-path="images/remote-clone-dialog.png" />
</Frame>

## 저장소 클론하기

<Steps>
  <Step title="클론 모달 열기">
    저장소 추가 드롭다운에서 **원격 프로젝트 열기**를 선택합니다. 모달이 열리면 접근 가능한 저장소 목록을 불러오기 시작합니다.
  </Step>

  <Step title="계정 선택">
    URL 입력칸 아래의 **계정** 드롭다운에서 클론에 사용할 계정을 고릅니다. 기본값은 전역 기본 계정이며, 계정을 바꾸면 그 계정 기준으로 저장소 목록이 다시 로드됩니다.

    <Note>
      비공개 저장소는 선택한 계정의 자격증명으로 클론됩니다. 회사 계정 등 특정 계정의 권한이 필요하면 여기서 그 계정을 골라야 합니다. 클론에 사용한 계정은 그 저장소의 계정으로 자동 연결되어, 이후 푸시·풀·페치·커밋도 같은 계정으로 동작합니다.
    </Note>
  </Step>

  <Step title="클론할 저장소 지정">
    두 가지 방법 중 하나를 사용합니다.

    * **목록에서 선택** — **접근 가능한 저장소(Accessible repositories)** 드롭다운을 열고 검색창으로 저장소를 찾아 항목을 고르면, 그 저장소의 클론 URL이 위 입력칸에 자동으로 채워집니다.
    * **URL 직접 입력** — **저장소 URL(Repository URL)** 칸에 `https://github.com/user/repo.git` 같은 주소를 붙여 넣습니다.

    이미 등록된 저장소는 목록에 **추가됨(Added)** 배지가 붙고 비활성 상태라 다시 클론되지 않습니다. 드롭다운 트리거는 상태에 따라 문구가 바뀝니다 — 불러오는 중에는 **저장소 불러오는 중…**, 조회에 실패하면 **저장소를 불러올 수 없음**, 선택을 마치면 그 저장소의 `owner/name`이 표시됩니다.

    <Note>
      URL은 항상 단일 기준입니다. 목록에서 고른 뒤 URL을 손으로 고치면 목록 선택이 자동으로 해제되고, 실제 클론은 입력된 URL로 진행됩니다.
    </Note>
  </Step>

  <Step title="대상 폴더 확인">
    **위치**에서 클론을 받을 부모 폴더를 확인하거나 **찾아보기**로 변경합니다. 실제 클론 경로는 `<위치>/<저장소 이름>`이며, 저장소 이름은 URL에서 자동으로 추출됩니다.
  </Step>

  <Step title="클론 실행">
    **저장소 클론(Clone repo)** 버튼(또는 `Enter`)을 누릅니다. 모달은 닫히지 않고 아래에 진행 영역이 나타납니다. 완료되면 새 저장소가 등록되고 자동으로 선택·열립니다.
  </Step>
</Steps>

<Tip>
  자주 쓰는 클론 위치는 미리 정해 둘 수 있습니다. [설정 → ParalleLane → 일반](/settings/preferences)의 **기본 클론 위치**에서 폴더를 지정하면 모달이 열릴 때 그 값이 자동으로 채워집니다. (최초 실행 온보딩에서도 지정할 수 있습니다. **찾아보기**로 고른 폴더는 다음 클론의 기본값으로 기억됩니다.)
</Tip>

## 클론 진행률

클론을 실행하면 모달 하단에 진행 영역이 나타나 지금 어느 단계인지 보여줍니다.

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/remote-clone-progress.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=de0ae9d86a7bd2a74ce215ae737e8768" alt="URL을 입력하고 클론을 실행해 단계별 진행률 바와 퍼센트가 표시된 클론 다이얼로그" width="886" height="944" data-path="images/remote-clone-progress.png" />
</Frame>

<Steps>
  <Step title="연결 중">
    아직 원격에서 진행 정보가 오지 않는 구간에서는 \*\*연결 중…\*\*이라는 문구와 함께 진행률을 알 수 없는 바가 움직입니다. 연결과 인증, 그리고 원격이 객체를 세기 시작할 때까지의 시간이 여기에 해당합니다.
  </Step>

  <Step title="단계별 진행률">
    원격이 진행을 보고하기 시작하면 단계 이름과 `0~100%` 진행률 바, 퍼센트가 표시됩니다. 단계는 다음 순서로 지나갑니다.

    * **객체 세는 중(Counting objects)**
    * **객체 압축 중(Compressing objects)**
    * **객체 받는 중(Receiving objects)**
    * **델타 해석 중(Resolving deltas)**
    * **파일 갱신 중(Updating files)**
    * **콘텐츠 필터링 중(Filtering content)**

    단계 이름 옆에는 `(처리한 개수/전체 개수)`가 함께 표시되고, **객체 받는 중** 단계에서는 전송 속도(예: `2.40 MiB/s`)가 뒤에 붙습니다.

    <Note>
      진행률 바는 **각 단계의 진행률**이며 클론 전체의 진행률이 아닙니다. 단계가 바뀌면 바가 0%에서 다시 시작하므로, 100%에 도달한 뒤 처음으로 돌아가는 것은 정상 동작입니다. 저장소에 따라 지나가지 않는 단계도 있습니다.
    </Note>
  </Step>

  <Step title="완료 또는 실패">
    성공하면 **저장소를 클론했습니다** 토스트가 뜨고 모달이 닫히며, 새 저장소가 등록·선택됩니다. 실패하면 진행 영역만 사라지고 모달은 그대로 남습니다. URL·계정·위치 입력값이 모두 보존되므로 값을 고쳐 곧바로 다시 시도할 수 있습니다.
  </Step>
</Steps>

<Warning>
  클론이 진행되는 동안에는 URL·계정·저장소·위치 입력과 **찾아보기** 버튼이 모두 비활성화되고, 실행 버튼은 \*\*클론 중…\*\*으로 바뀝니다. **취소** 버튼도 비활성화되며 Escape 키나 배경 클릭으로 모달을 닫을 수 없습니다. 진행 중인 클론을 중간에 취소하는 기능은 없으므로, 끝날 때까지 기다려야 합니다.
</Warning>

<Note>
  클론에는 다른 원격 작업과 다른 타임아웃 규칙이 적용됩니다. 진행 출력이 계속 들어오는 동안에는 몇 시간이 걸려도 중단되지 않고(상한 24시간), **300초 동안 아무 진행도 보고되지 않을 때만** 타임아웃으로 중단됩니다. 대형 저장소를 클론하다 느려 보여도 진행률이 갱신되는 한 그대로 두면 됩니다.
</Note>

## 자주 발생하는 상황

<AccordionGroup>
  <Accordion title="저장소 목록이 비어 있거나 안내 문구만 보입니다" icon="user-x">
    전역 계정이 없거나 토큰이 만료되면 목록을 채우지 못합니다. [설정 → ParalleLane → 계정](/settings/accounts)에서 계정을 추가하거나 다시 인증하세요. 이 경우에도 URL을 직접 붙여 넣어 클론하는 것은 가능합니다.

    목록 조회가 **실패**한 경우에는 드롭다운 아래에 원격이 돌려준 오류가 그대로 표시됩니다(예: `HTTP 401 Unauthorized: …`). 동시에 **저장소 목록을 불러오지 못했습니다** 에러 토스트에도 같은 메시지가 실리므로, 권한 문제인지 네트워크 문제인지 바로 구분할 수 있습니다. 계정은 연결되어 있지만 접근 가능한 저장소가 하나도 없으면 오류가 아니라 안내 문구만 표시됩니다.
  </Accordion>

  <Accordion title="대상 폴더가 이미 존재합니다" icon="folder">
    `<위치>/<저장소 이름>` 폴더가 이미 있으면 클론이 시작되기 전에 중단됩니다. 위치를 바꾸거나 기존 폴더를 정리한 뒤 다시 시도하세요.
  </Accordion>

  <Accordion title="이미 등록된 저장소입니다" icon="copy">
    이미 등록한 저장소는 목록에서 **추가됨** 배지와 함께 비활성으로 표시되어 고를 수 없습니다. 판정 기준은 URL 문자열이 아니라 호스트·소유자·저장소 이름이므로, 같은 저장소의 SSH 주소와 HTTPS 주소도 동일하게 인식됩니다.

    <Note>
      URL을 직접 입력하는 경로에는 이 검사가 적용되지 않습니다. 대신 `<위치>/<저장소 이름>` 폴더가 이미 있으면 클론이 시작되기 전에 막히므로, 같은 저장소를 **다른 위치**에 클론하면 별개의 로컬 사본으로 하나 더 등록됩니다.
    </Note>
  </Accordion>

  <Accordion title="클론이 인증 오류로 실패합니다" icon="lock">
    비공개 저장소라면 선택한 계정에 접근 권한이 있는지 확인하세요. 계정을 바꿔 다시 시도하거나 [설정 → ParalleLane → 계정](/settings/accounts)에서 자격증명을 재확인하면 됩니다.
  </Accordion>
</AccordionGroup>
