# 克隆仓库

当你在 GitHub 上创建一个仓库时，它就是一个远程仓库。 您可以克隆仓库以在计算机上创建本地副本，并在两个位置之间进行同步。

## 关于克隆仓库

<div class="ghd-tool webui">

你可以将存储库从 GitHub.com 克隆到本地计算机或 Codespace，以便更轻松地修复合并冲突、添加或移除文件以及推送更大的提交。 克隆存储库时，将存储库从 GitHub.com 本地计算机复制到远程虚拟机，或者在创建代码空间时复制到远程虚拟机。 有关克隆到代码空间的详细信息，请参阅 [为代码库创建代码空间](/zh/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository).

</div>

<div class="ghd-tool cli">

你可以将存储库从 GitHub.com 克隆到本地计算机，以便修复合并冲突、添加或删除文件以及推送较大的提交。 克隆存储库时，将存储库从 GitHub.com 复制到本地计算机。

</div>

<div class="ghd-tool desktop">

你可以将存储库从 GitHub.com 克隆到本地计算机，以便修复合并冲突、添加或删除文件以及推送较大的提交。 克隆存储库时，将存储库从 GitHub.com 复制到本地计算机。

</div>

克隆存储库会拉取该时间点包含的所有存储库数据 GitHub.com 的完整副本，包括项目的每个文件和文件夹的所有版本。 你可以将更改推送到远程存储库 GitHub.com，也可以从 GitHub.com中拉取其他人的更改。 有关详细信息，请参阅“[使用 Git](/zh/get-started/using-git)”。

您可以克隆自己的现有仓库或克隆其他人的现有仓库以参与项目。

## 克隆仓库

<div class="ghd-tool webui">

1. 在 GitHub 上，导航到存储库的主页面。

2. 在文件列表上方，单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code”\*\*\*\*。

   ![存储库登陆页面上的文件列表的屏幕截图。 “代码”按钮以深橙色轮廓突出显示。](/assets/images/help/repository/code-button.png)

3. 复制存储库的 URL。

   * 若要使用 HTTPS 克隆存储库，请在“HTTPS”下单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="copy icon" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>。
   * 要使用 SSH 密钥克隆存储库，包括组织的 SSH 证书颁发机构颁发的证书，请单击“SSH”，然后单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>。
   * 要使用 GitHub CLI 克隆存储库，请单击“GitHub CLI”，然后单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>。

     ![“代码”下拉菜单的屏幕截图。 在存储库的 HTTPS URL 的右侧，复制图标以深橙色框出。](/assets/images/help/repository/https-url-clone-cli.png)

4. 打开<span class="platform-mac">终端</span><span class="platform-linux">终端</span><span class="platform-windows">Git Bash</span>。

5. 将当前的工作目录更改为您想要存储克隆目录的位置。

6. 键入 `git clone`，然后粘贴之前复制的 URL。

   ```shell
   git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
   ```

7. 按 Enter 创建本地克隆。

   ```shell
   $ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
   > Cloning into `Spoon-Knife`...
   > remote: Counting objects: 10, done.
   > remote: Compressing objects: 100% (8/8), done.
   > remove: Total 10 (delta 1), reused 10 (delta 1)
   > Unpacking objects: 100% (10/10), done.
   ```

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> 若要详细了解 GitHub CLI，请参阅“[关于 GitHub CLI](/zh/github-cli/github-cli/about-github-cli)”。

若要在本地克隆存储库，请使用 `repo clone` 子命令。 将 `repository` 参数替换为存储库名称。 例如，`octo-org/octo-repo`、`monalisa/octo-repo` 或 `octo-repo`。 如果省略 `OWNER/` 存储库参数的 `OWNER/REPO` 部分，则默认为验证用户的名称。

```shell
gh repo clone REPOSITORY
```

还可以使用GitHub URL 克隆存储库。

```shell
gh repo clone https://github.com/PATH-TO/REPOSITORY
```

</div>

<div class="ghd-tool desktop">

1. 在 GitHub 上，导航到存储库的主页面。
2. 在文件列表上方，单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code”\*\*\*\*。

   ![存储库登陆页面上的文件列表的屏幕截图。 “代码”按钮以深橙色轮廓突出显示。](/assets/images/help/repository/code-button.png)
3. 要使用 GitHub Desktop 克隆并打开仓库，请单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-desktop-download" aria-label="desktop-download" role="img"><path d="m4.927 5.427 2.896 2.896a.25.25 0 0 0 .354 0l2.896-2.896A.25.25 0 0 0 10.896 5H8.75V.75a.75.75 0 1 0-1.5 0V5H5.104a.25.25 0 0 0-.177.427Z"></path><path d="M1.573 2.573a.25.25 0 0 0-.073.177v7.5a.25.25 0 0 0 .25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-3a.75.75 0 1 1 0-1.5h3A1.75 1.75 0 0 1 16 2.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.75.75 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5A1.75 1.75 0 0 1 1.75 1h3a.75.75 0 0 1 0 1.5h-3a.25.25 0 0 0-.177.073ZM6.982 12a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5H6.982Z"></path></svg>“Open with GitHub Desktop”\*\*\*\*。

   ![存储库的“代码”下拉列表的屏幕截图。 标记为“使用 GitHub Desktop 打开”的按钮以深橙色标出。](/assets/images/help/repository/open-with-desktop.png)
4. 按照提示 GitHub Desktop 完成克隆。

有关详细信息，请参阅“[将仓库从 GitHub 克隆到 GitHub Desktop](/zh/desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop)”。

</div>

## 克隆空仓库

空仓库不含任何文件。 如果创建仓库时不使用 README 初始化仓库，通常会出现空仓库。

1. 在 GitHub 上，导航到存储库的主页面。

2. 若要使用 HTTPS 使用命令行克隆存储库，请在“快速设置”下单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>。 若要使用 SSH 密钥克隆存储库，包括组织的 SSH 证书颁发机构颁发的证书，请单击 **SSH**，然后单击。<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy to clipboard" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>

   ![空仓库的快速设置说明的屏幕截图。 在仓库的 HTTPS URL 的右侧，复制图标以橙色框出。](/assets/images/help/repository/empty-https-url-clone-button.png)

   或者，若要在桌面中克隆存储库，请单击“**在桌面中设置”<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-desktop-download" aria-label="desktop-download" role="img"><path d="m4.927 5.427 2.896 2.896a.25.25 0 0 0 .354 0l2.896-2.896A.25.25 0 0 0 10.896 5H8.75V.75a.75.75 0 1 0-1.5 0V5H5.104a.25.25 0 0 0-.177.427Z"></path><path d="M1.573 2.573a.25.25 0 0 0-.073.177v7.5a.25.25 0 0 0 .25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-3a.75.75 0 1 1 0-1.5h3A1.75 1.75 0 0 1 16 2.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.75.75 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5A1.75 1.75 0 0 1 1.75 1h3a.75.75 0 0 1 0 1.5h-3a.25.25 0 0 0-.177.073ZM6.982 12a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5H6.982Z"></path></svg>**，然后按照提示完成克隆。

   ![空仓库的快速设置说明的屏幕截图。 “在 Desktop 中进行设置”按钮以深橙色框出。](/assets/images/help/repository/empty-desktop-clone-button.png)

3. 打开<span class="platform-mac">终端</span><span class="platform-linux">终端</span><span class="platform-windows">Git Bash</span>。

4. 将当前的工作目录更改为您想要存储克隆目录的位置。

5. 键入 `git clone`，然后粘贴之前复制的 URL。

   ```shell
   git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
   ```

6. 按 Enter 创建本地克隆。

   ```shell
   $ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
   > Cloning into `Spoon-Knife`...
   > remote: Counting objects: 10, done.
   > remote: Compressing objects: 100% (8/8), done.
   > remove: Total 10 (delta 1), reused 10 (delta 1)
   > Unpacking objects: 100% (10/10), done.
   ```

## 排查克隆错误

在克隆仓库时，可能会遇到一些错误。

如果无法克隆仓库，请检查：

* 您可以使用 HTTPS 连接。 有关详细信息，请参阅“[排查克隆错误](/zh/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors)”。
* 您有权访问要克隆的仓库。 有关详细信息，请参阅“[排查克隆错误](/zh/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors#check-your-permissions)”。
* 要克隆的默认分支仍然存在。 有关详细信息，请参阅“[排查克隆错误](/zh/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors#error-remote-head-refers-to-nonexistent-ref-unable-to-checkout)”。

## 其他阅读材料

* [连接问题故障排除](/zh/get-started/using-github/troubleshooting-connectivity-problems)